这可能有助于身份验证:http ://rahul-ghose.blogspot.com/2014/05/openam-database-connectivity-with-mysql.html
博客的内容,由 Rahul Ghose制作
OpenAM 数据库与 MySql 的连接
这个帖子是很久以后的。在创建单点登录实现方面,我真的被我的项目所困扰。我正在使用一款令人惊叹的软件 OpenAM,以前称为 OpenSSO,目前由 Forgerock 社区维护。
我的设置:我在 Centos 上使用 Tomcat 和 Mysql 和 OpenAM 11.0.0
所以首先,为你的操作系统安装 mysql-connector-java,你应该得到一个 jar 文件。这是我在我的盒子上得到的:
# rpm -ql mysql-connector-java | grep jar
/usr/share/java/mysql-connector-java-5.1.17.jar
/usr/share/java/mysql-connector-java.jar
Now copy this to your tomcat installation directory. At "$CATALINA_HOME/lib" and restart tomcat.
如果您跳过上述步骤,您将遇到如下所示的错误:
java.lang.InstantiationException: JdbcSimpleUserDao.initialize: failed to load driver class jdbcDriver=com.mysql.jdbc.Driver exception=com.mysql.jdbc.Driver
at com.sun.identity.idm.plugins.database.JdbcSimpleUserDao.initialize(JdbcSimpleUserDao.java:274)
at com.sun.identity.idm.plugins.database.DatabaseRepo.initialize(DatabaseRepo.java:429)
at com.sun.identity.idm.server.IdRepoPluginsCache.constructIdRepoPlugin(IdRepoPluginsCache.java:475)
at com.sun.identity.idm.server.IdRepoPluginsCache.addIdRepo(IdRepoPluginsCache.java:353)
at com.sun.identity.idm.server.IdRepoPluginsCache.removeIdRepo(IdRepoPluginsCache.java:251)
at com.sun.identity.idm.server.IdRepoPluginsCache.organizationConfigChanged(IdRepoPluginsCache.java:646)
at com.sun.identity.sm.ServiceConfigManagerImpl.notifyOrgConfigChange(ServiceConfigManagerImpl.java:493)
at com.sun.identity.sm.ServiceConfigManagerImpl.objectChanged(ServiceConfigManagerImpl.java:453)
at com.sun.identity.sm.SMSNotificationManager.sendNotifications(SMSNotificationManager.java:289)
at com.sun.identity.sm.SMSNotificationManager$LocalChangeNotifcationTask.run(SMSNotificationManager.java:365)
at com.iplanet.am.util.ThreadPool$WorkerThread.run(ThreadPool.java:306)
接下来,连接到您的 mysql 服务器并导航到 OpenAM 中的此页面(访问控制 -> 领域(您的选择)-> 数据存储区 -> 新建):
Step 1 of 2: Select type of Data store
Name: My_Database_Repo
Type:
Active Directory
Active Directory Application Mode (ADAM)
Database Repository (Early Access) <--- TICK THIS ONE
Generic LDAPv3
OpenDJ
Sun DS with OpenAM schema
Tivoli Directory Server
现在点击下一步。我们只需要更改以下字段:
Password for Connecting to database:
Password for Connecting to database (confirm):
JDBC driver url: jdbc:mysql://127.0.0.1:3306/test
Connect this user to database: root
输入你的mysql数据库用户的密码和用户名。还要更改 mysql 数据库安装的 IP 地址、端口和数据库名称,以引用您专门为 OpenAM 保留的表。OpenAM 将在此数据库中使用 2 个表,您需要在此处指定其名称:
User Configuration
*Database User Table Name: opensso_users
和这里:
Group configuration
Database Membership table name: groups
因此,对于用户表,您需要将列创建为 VARCHAR,不知何故整数对我不起作用。您需要在表中包含的列名可以在此表中找到:
List of User Attributes Names in Database
uid
ChangePassword
sunIdentityMSISDNNumber
mail
sn
manager
preferredlocale
iplanet_am_user_password_reset_force_reset
givenname
iplanet_am_user_alias_list
我删除了所有 iplanet_* 属性并在 MySql 数据库中创建了一个用户表。然后使用以下 sql 脚本为默认配置创建数据库条目:
create database test;
use test;
create table opensso_users (uid varchar(50), userpassword varchar(50), inetuserstatus integer, cn varchar(50),mail varchar(50),manager varchar(50), preferredlocale varchar(50), givenname varchar(50), telephonenumber varchar(50), telephonenumber varchar(50), telephonenumber varchar(50), sn varchar(50) );
create table groups (uid varchar(50), group_name varchar(50), cn varchar(50));
现在将您的用户添加到此表中,然后去,去,去!
注意:我无法让小组使用此配置,如果您有任何诀窍,请告诉我
另请阅读:
1:https ://wikis.forgerock.org/confluence/display/openidm/JDBC+Repository
2:关于数据库配置的邮件列表条目