【问题标题】:GlassFish 3.1 LDAP-Realm via ActiveDirectoryGlassFish 3.1 LDAP-Realm 通过 ActiveDirectory
【发布时间】:2011-08-17 13:55:31
【问题描述】:

这里有一些关于这个主题的问题,但没有一个答案有帮助,或者线程似乎已经死了......所以这里有另一个问题:

我正在尝试通过 ActiveDirectory 服务器处理我的 web 应用程序的身份验证。 domain.xml中realm的配置如下:

<auth-realm name="ActiveDirectory" classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm">
  <property description="null" name="directory" value="ldap://ad.local:389"></property>
  <property description="null" name="base-dn" value="DC=ad,DC=local"></property>
  <property name="jaas-context" value="ldapRealm"></property>
  <property name="assign-groups" value="Users"></property>
  <property name="search-filter" value="(&amp;(objectCategory=person)(objectClass=user)(sAMAccountName=%s))"></property>
  <property name="search-bind-password" value="topsecret"></property>
  <property name="group-search-filter" value="(&amp;(objectCategory=group)(member=%d))"></property>
  <property name="search-bind-dn" value="CN=read only,OU=@ServiceAccounts,DC=ad,DC=local"></property>
</auth-realm>

此外,这个 JVM-Option 已设置(如许多教程中所述):

<jvm-options>-Djava.naming.referral=follow</jvm-options>

应用程序的 web.xml 是这样设置的(是的,非常基本):

...
<security-constraint>
    <display-name>OnlyAD</display-name>
    <web-resource-collection>
        <web-resource-name>/SubgroupFacade</web-resource-name>
        <description/>
        <url-pattern>/SubgroupFacade</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <description/>
        <role-name>Users</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>ActiveDirectory</realm-name>
</login-config>
<security-role>
    <description/>
    <role-name>Users</role-name>
</security-role>
...

启动 Glassfish 工作正常。访问 SubgroupFacade-Servlet 也可以:登录框出现。我输入了一个有效的用户名和适当的密码,然后...窗口再次出现。

日志显示,原始连接和普通用户查找有效,但组查找失败,出现一个(可能是两个)异常:

WARNUNG: SEC1106: Error during LDAP search with filter [(&(objectCategory=group)(member=CN=Someuser Joe,OU=Users,OU=Fizzlecorp,DC=ad,DC=local))].
WARNUNG: SEC1000: Caught exception.
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'DC=ad,DC=local'
...
WARNUNG: SEC1106: Error during LDAP search with filter [(&(objectclass=groupofuniquenames)(objectclass=*groupofurls*))].
WARNUNG: SEC1000: Caught exception.
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'DC=ad,DC=local'
...

在外部应用程序(例如终端上的简单 ldapsearch)中运行 LDAP 查询是可行的。我确实得到了 Joe Someuser 的所有组。但是,第二个查询 ((&amp;(objectclass=groupofuniquenames)(objectclass=*groupofurls*))) 没有返回任何结果...而且我无法获得有关此查询应该做什么的任何信息。

我希望有人知道这里出了什么问题。自从我今天早上上班以来,这个一直在殴打我(现在已经是下午晚些时候了……)。

提前致谢! 本

【问题讨论】:

    标签: java jakarta-ee active-directory glassfish


    【解决方案1】:

    添加到&lt;auth-realm&gt; 财产 &lt;property name="java.naming.referral" value="follow"&gt;&lt;/property&gt;

    它帮助了我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多