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=FALSE</connection-url>
 5                     <driver>h2</driver>
 6                     <security>
 7                         <user-name>sa</user-name>
 8                         <password>sa</password>
 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">localhost</xa-datasource-property>  
13                     <xa-datasource-property name="DatabaseName">keycloak-dev</xa-datasource-property>
14                     <driver>mysql</driver>
15                     <security>
16                         <user-name>root</user-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">localhost</xa-datasource-property>  
21                     <xa-datasource-property name="DatabaseName">storage-provider-database</xa-datasource-property>
22                     <driver>mysql</driver>
23                     <security>
24                         <user-name>root</user-name>
25                     </security>
26                 </xa-datasource>
27                 <drivers>
28                     <driver name="mysql" module="org.mysql">
29                         <xa-datasource-class>org.mariadb.jdbc.MariaDbDataSource</xa-datasource-class>
30                     </driver>
31                     <driver name="h2" module="com.h2database.h2">
32                         <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-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
posted @ 2018-06-26 16:06  cnxieyang  阅读(936)  评论(0编辑  收藏  举报
联系邮箱:cnxieyang@163.com