• 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
  • 相关阅读:
    Python-深浅拷贝
    Python-生成式
    Python-手写web应用
    Python-为什么产生了GIL锁?
    Python-文件处理
    Python-线程
    10大网站设计错误 足以毁掉你的网站【转】
    [转]ASP.NET验证发生前无法调用 Page.IsValid。应在 CausesValidation=True 且已启动回发的控件
    jquery操作字符串常用方法总结及工作代码
    C#中的序列化和反序列化是什么、有什么作用、使用方法详解
  • 原文地址:https://www.cnblogs.com/cnxieyang/p/keycloakDatasource.html
Copyright © 2020-2023  润新知