在这篇文章中,我将演示如何使用JDBC用户存储配置WSO2 Identity Server。 为了演示,我使用的是MySQL用户存储,但是相同的过程也适用于任何其他JDBC用户存储。 我的环境是
- 操作系统– Ubuntu 12.10
- Java – 1.6
- WSO2是4.5.0
- 设置MySQL数据库
- IS中的用户存储配置–主要
- IS中的用户存储配置–辅助
(在本文中,我将提取的wso2is文件夹称为CARBON_HOME)
设置MySQL数据库
我们首先需要运行MySQL。 如果尚未建立MySQL资料库 ,这篇文章会很有帮助。 MySQL运行后,我们必须根据Identity Server的要求来建立数据库。 服务器在其内部打包了必要的sql脚本,这些脚本可以位于CARBON_HOME / dbscripts中。
让我们登录到MySQL服务器并执行以下命令:
创建一个数据库,
mysql> create datbase JDBC_demo_user_store;
看看创作,
mysql> show databases;
然后使用sql脚本并设置数据库,
mysql> use JDBC_demo_user_store;
mysql> source <path_to>/wso2is-4.5.0/dbscripts/mysql.sql;
这将在SQL脚本中运行查询并设置所需的表。
现在,如果我们输入命令,将显示以下输出。
mysql> show tables;
现在我们完成了数据库的设置。 我们可以继续要求Identiy Server使用它。
注意:在执行以下步骤之前,我们还需要将mysql-jdbc连接器添加到Identity Server。 您可以从此处下载它,并将其放入CARBON_HOME / repository / components / lib中。
IS中的用户存储配置–主要
Identity Server使用嵌入式H2数据库保留权限详细信息等,其数据源详细信息位于CARBON_HOME / repository / conf / datasources / master-datasources.xml中。 我们也可以在此处添加新JDBC用户存储的数据源详细信息。 根据我的设置,这是master-datasources.xml文件。
<datasource><name>JDBC_demo_user_store</name><description>The datasource used for JDBC_demo_user_store</description><jndiConfig><name>jdbc/JDBC_demo_user_store</name></jndiConfig><definition type="RDBMS"><configuration><url>jdbc:mysql://localhost:3306/JDBC_demo_user_store</url><username>root</username><password>pushpalanka2</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>
</datasource>
用户存储的主要配置位于CARBON_HOME / repository / conf / user-mgt.xml文件中。 默认情况下,它指向嵌入式ReadLDAPUserStoreManager。 现在我们将其更改为JDBCUserStoreManager。 因此,让我们注释掉默认值之一,并取消注释JDBCUserStoreManager。 现在,我们将有一个类似于this的user-mgt.xml文件 。 如果需要,我们可以根据上下文修改这些属性。
现在配置已结束。 让我们从bin / wso2server.sh启动服务器。 一旦开始,请继续并将用户添加到“主”域。
现在,如果我们检查在数据库中创建的UM_USER表,它也会列出用户。
IS中的用户存储配置–辅助
现在,让我们看看如何在IS中将相同的MySQL用户存储用作辅助用户存储。 这很容易,我们可以通过UI进行全部操作,而无需对master-datasources.xml或user-mgt.xml中的上述默认配置进行任何修改。 我们必须在此处添加驱动程序名称,URL,用户名和密码,作为先前在master-datasources.xml中提供的强制属性。
添加后,它将显示在可用的用户存储列表中。 在UI中定义用户商店经理是很直观的,但是如果您想了解更多详细信息,可以参考这篇文章 。 如果需要,我们也可以编辑可选属性。 高级部分包含JDBC用户存储管理器所需的SQL语句。
Advanced Option:如果要编辑数据库结构(SQL脚本),则需要使用该Advanced选项根据该架构更新这些SQL查询。
现在,如果我们尝试添加新用户,我们还将看到该辅助域。
如果选择此域并添加用户,我们可以看到用户添加到数据库中的方式与主要用户存储中的方式相同。
翻译自: https://www.javacodegeeks.com/2013/09/deploying-identity-server-over-a-jdbc-based-user-store.html