2016-09-24 27 views
0

我有一个要求,我的(现场安装的基于Web的)应用程序通过LDAP进行身份验证,我试图使用Apache Shiro来这样做。当我必须支持多个LDAP实现时,应使用哪个LDAP领域?

我的大部分客户都有Microsoft Active Directory,但是有一对夫妇有Oracle Internet DirectoryOracle Virtual Directory,我想有人提到OpenLDAP。

我猜,基于名称,ActiveDirectoryRealm只适用于Microsoft ActiveDirectory。是对的吗?

ActiveDirectoryRealm从AbstractLdapRealm扩展而不是从DefaultLdapRealm扩展。然而,DefaultLdapRealm从AuthorizingRealm扩展而不是AbstractLdapRealm,这是令人困惑的,我不知道我应该使用什么。

我应该只是给每个客户端指示,以根据他们的LDAP实现来更改shiro.ini吗?

我宁愿只有一个实现,我可以使用所有客户端,但不打扰他们像这样的低级配置。

我可能需要制作一个自定义的Realm来处理other issues with Shiro。我将不得不在2个领域做相同的更改 - 一个用于ActiveDirectory,另一个用于其他LDAP?

或者我做一个扩展DefaultLdapRealm并且必须重新实现ActiveDirectoryRealm中搜索角色的代码?

回答