用户管理表不在 WSO2 产品之间共享

User Management Tables are not shared between WSO2 products

我已经关注 this guide 关于使用 G-Reg 在 WSO2 产品之间共享注册表的内容。但问题是用户管理表没有共享。

比如我在G-Reg中新建了一个用户"test",但是在WSO2 ESB产品中是无效的(只能是本地用户"admin")。

那么是否可以共享存储在G-Reg中的用户?或者它们存储在本地 H2 数据库中?

为此,您需要通过 repository/conf/user-mgt.xml 将产品配置为指向同一用户存储。查看 this doc 了解如何操作。

So is it possible to share users stored in G-Red? Or are they stored in local H2 databases?

是的,您可以在所有 WSO2 产品之间共享用户。默认情况下,使用所有产品随附的 H2。

如果您要在多个产品之间共享用户,您需要使用生产就绪的数据库,例如 mysql、postgresql 等。

  1. 创建一个名为userdb

  2. 的数据库
  3. 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>
    

  4. 在 G-REG 和 ESB

    中更改 repository/conf/user-mgt.xml 文件中的数据源 JNDI 名称,如下所示
    <Property name="dataSource">jdbc/WSO2CarbonDB_User</Property>
    
  5. 使用 -Dset up 选项启动 G-REG 或 ESB 以创建所需的 database.This 仅在第一次需要。