2010-12-16 76 views
2

我在java ee企业应用程序中使用JAAS框架进行认证和授权过程。我使用GlassFish作为应用程序服务器。我的领域配置如下:组成员关系ldap领域

<auth-realm name="ads-realm" classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm"> 
    <property name="jaas-context" value="ldapRealm" /> 
    <property name="base-dn" value="CN=Users,DC=company,DC=intern" /> 
    <property name="directory" value="ldap://ad.company.intern:389" /> 
    <property name="search-filter" value="(&amp;(objectClass=user)(sAMAccountName=%s))" /> 
    <property name="search-bind-password" value="****" /> 
    <property name="search-bind-dn" value="[email protected]" /> 
</auth-realm> 

此配置在我的环境中正常工作。请参见下面的日志条目:

FEIN: JAAS login complete. 
FEIN: JAAS authentication committed. 
FEIN: Password login succeeded for xyz 

,但我没有从我的Active Directory中收到一个LDAP组成员(S)

FEIN: LDAP: Group memberships found: 
FEIN: LDAP: login succeeded for: xyz 

哪个配置/项/映射有我做的,接收AD的组员资格?

当然,我可以在酒店

<property name="assign-groups" value="Users" /> 

添加到我的GlassFish的配置,但是这不正是我想要的。

回答

0

您需要添加这个额外的属性:

group-search-filter搜索过滤器以查找用户组成员。默认值为uniquemember =%d(%d扩展为用户元素DN)。在Active Directory的情况下,这应该是成员=%d