【发布时间】:2015-10-09 05:20:20
【问题描述】:
我已遵循this guide 在使用 G-Reg 的 WSO2 产品之间共享注册表。但问题是用户管理表没有共享。
例如,我在 G-Reg 中创建了一个新用户“test”,但在 WSO2 ESB 产品中无效(只能使用本机用户“admin”)。
那么是否可以共享存储在 G-Reg 中的用户?还是它们存储在本地 H2 数据库中?
【问题讨论】:
标签: wso2 user-management wso2greg
我已遵循this guide 在使用 G-Reg 的 WSO2 产品之间共享注册表。但问题是用户管理表没有共享。
例如,我在 G-Reg 中创建了一个新用户“test”,但在 WSO2 ESB 产品中无效(只能使用本机用户“admin”)。
那么是否可以共享存储在 G-Reg 中的用户?还是它们存储在本地 H2 数据库中?
【问题讨论】:
标签: wso2 user-management wso2greg
那么是否可以共享存储在 G-Red 中的用户?或者它们是否被存储 在本地 H2 数据库中?
是的,您可以在所有 WSO2 产品之间共享用户。默认情况下,使用 H2,这是所有产品随附的。
如果您要在多个产品之间共享用户,您需要使用 mysql、postgresql 等生产就绪数据库。
创建一个名为userdb的数据库
在repository/conf/datasources/master-datasources.xml中添加以下条目
<datasource>
<name>WSO2_CARBON_USER</name>
<description>The datasource used for registry and user manager</description>
<jndiConfig>
<name>jdbc/WSO2CarbonDB_User</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/userdb</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
更改 repository/conf/user-mgt.xml 文件中的数据源 JNDI 名称,如下所示在 G-REG 和 ESB 中
<Property name="dataSource">jdbc/WSO2CarbonDB_User</Property>
使用 -Dset up 选项启动 G-REG 或 ESB 以创建所需的数据库。这仅在第一次时需要。
【讨论】:
为此,您需要通过repository/conf/user-mgt.xml 进行配置,将产品配置为指向同一个用户商店。查看this doc 了解如何操作。
【讨论】: