【发布时间】:2017-02-01 07:01:54
【问题描述】:
我正在使用以下内容开发网络应用程序:
- Apache Shiro 1.2.4
- 雄猫 8
- Java 8
我正在尝试通过 LDAP 领域对用户进行身份验证。
我使用以下值使用 JXplorer 测试了登录:
- BaseND:ou=students,ou=users,o=data
- UserDN/BindDN:cn={我的专有名称},ou=students,ou=users,o=data
- JXplorer 还有一个我导入的证书
现在是我的问题:
我必须不是基于cn 而是基于uid 对用户进行身份验证。
但是这行不通。
我公司的 LDAP 管理员建议的工作流程:
我有一个系统用户(据我了解)应该连接到 LDAP 服务器,根据给定的 uid 搜索用户并返回该用户的 cn。
在第二步中,应该可以使用他的cn 对用户进行身份验证,就像在 JXplorer 中完成(成功)一样。
我的 shiro.ini 配置对于我的测试 LDAP 看起来像这样(不是我现在尝试验证的那个)
ldapRealm = org.apache.shiro.realm.ldap.JndiLdapRealm
ldapRealm.userDnTemplate = cn={0},ou=People,dc=maxcrc,dc=com
ldapRealm.contextFactory.url = ldap://localhost:389
我现在面临的问题是,我找不到有关如何配置我的 shiro.ini 文件的信息,以从上面计算建议的工作流程。
问题 #1
可以使用标准的org.apache.shiro.realm.ldap.JndiLdapRealm(如何配置)?特别是对于证书的集成,我找不到任何合适的东西。
问题 #2
我是否需要为此“两步身份验证”创建自定义 JndiLdapRealm?这样的 Realm 是什么样子的?
【问题讨论】: