keycloak创建跨库数据源

keycloak在书写User Storage Provider的时候,若登录数据分散到不同的应用数据库中,采用User Storage Provider实现的时候,需要对不同的Deployment使用不同的数据,考虑到多个数据库操作的事物问题,则必须使用Xa-Datasource。下问对keycloak的standalone.xml的配置文件做以下记录,有需要者可参考。

 1 <subsystem xmlns="urn:jboss:domain:datasources:5.0">
 2             <datasources>
 3                 <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
 4                     <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSEconnection-url>
 5                     <driver>h2driver>
 6                     <security>
 7                         <user-name>sauser-name>
 8                         <password>sapassword>
 9                     security>
10                 datasource>
11                 <xa-datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true">
12                     <xa-datasource-property name="ServerName">localhostxa-datasource-property>  
13                     <xa-datasource-property name="DatabaseName">keycloak-devxa-datasource-property>
14                     <driver>mysqldriver>
15                     <security>
16                         <user-name>rootuser-name>
17                     security>
18                 xa-datasource>
19                 <xa-datasource jndi-name="java:jboss/datasources/KeycloakExtendSP" pool-name="KeycloakExtendSP" enabled="true" use-java-context="true">
20                      <xa-datasource-property name="ServerName">localhostxa-datasource-property>  
21                     <xa-datasource-property name="DatabaseName">storage-provider-databasexa-datasource-property>
22                     <driver>mysqldriver>
23                     <security>
24                         <user-name>rootuser-name>
25                     security>
26                 xa-datasource>
27                 <drivers>
28                     <driver name="mysql" module="org.mysql">
29                         <xa-datasource-class>org.mariadb.jdbc.MariaDbDataSourcexa-datasource-class>
30                     driver>
31                     <driver name="h2" module="com.h2database.h2">
32                         <xa-datasource-class>org.h2.jdbcx.JdbcDataSourcexa-datasource-class>
33                     driver>
34                 drivers>
35             datasources>
36         subsystem>

做此记录,若要探讨关于keycloak-storage-provider的相关问题,欢迎留言。

参考链接

https://access.redhat.com/documentation/en-us/jboss_enterprise_application_platform/6/html/administration_and_configuration_guide/example_mysql_xa_datasource1

转载于:https://www.cnblogs.com/cnxieyang/p/keycloakDatasource.html

你可能感兴趣的:(keycloak创建跨库数据源)