我使用WebLogic配置LDAP身份验证器,如下所示: Weblogic控制台 - >安全领域 - > myrealm - >提供者 - >新的 - >类型:ActiveDirectoryAuthenticator ... 并设置用户名属性= sAMAccountName。 然后,我的应用程序通过调用httpServletRequest.getUserPrincipal.getName()来获取经过身份验证的用户的sAMAccountName。
但是,这只返回字符串(sAMAccountName)。 是否可以获取经过身份验证的用户的完整LDAP帐户(javax.naming.directory.SearchResult或类似) 直接来自httpServletRequest?
ps:我知道我可以使用基于sAMAccountName的额外LDAP查询来获取用户的完整LDAP帐户, 但这需要不必要的第二次LDAP查询,并且还要将LDAP配置从Weblogic复制到我的应用程序中。
答案 0 :(得分:1)
您可以使用OPSS用户&角色API。它们将与Active Directory一起使用。
http://docs.oracle.com/cd/E12839_01/core.1111/e10043/devuserole.htm#BABBIGAJ
您可以使用searchUser和searchRole API直接为特定用户或角色查询身份存储:
IdentityStore.searchUser(String name);
IdentityStore.searchUser(Principal principal);