Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GlassFish安全领域、Active Directory和转介_Java_Active Directory_Glassfish - Fatal编程技术网

Java GlassFish安全领域、Active Directory和转介

Java GlassFish安全领域、Active Directory和转介,java,active-directory,glassfish,Java,Active Directory,Glassfish,我已经在Glassfish中设置了一个安全域,以针对Active Directory服务器进行身份验证。领域的配置如下所示: Class Name: com.sun.enterprise.security.auth.realm.ldap.LDAPRealm JAAS context: ldapRealm Directory: ldap://172.16.76.10:389/ Base DN: dc=smallbusiness,dc=local search-filter: (&(ob

我已经在Glassfish中设置了一个安全域,以针对Active Directory服务器进行身份验证。领域的配置如下所示:

Class Name: com.sun.enterprise.security.auth.realm.ldap.LDAPRealm
JAAS context:  ldapRealm
Directory: ldap://172.16.76.10:389/
Base DN:  dc=smallbusiness,dc=local
search-filter: (&(objectClass=user)(sAMAccountName=%s))
group-search-filter: (&(objectClass=group)(member=%d))
search-bind-dn: cN=Administrator,CN=Users,dc=smallbusiness,dc=local
search-bind-password: abcd1234!
该领域功能正常,我可以登录,但每次登录时,我都会在日志中看到以下错误:

SEC1106: Error during LDAP search with filter [(&(objectClass=group)(member=CN=Administrator,CN=Users,dc=smallbusiness,dc=local))].
SEC1000: Caught exception.
    javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name 'dc=smallbusiness,dc=local'
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2820)
        ....
        ....
ldaplm.searcherror
在搜索解决方案时,我发现建议将
java.naming.referral=follow
添加到域的属性中。然而,在我添加这个之后,GlassFish需要20分钟才能通过Active Directory的身份验证。我怀疑这是Active Directory服务器上的DNS问题。Active Directory服务器是虚拟机中的普通Windows server 2003安装程序


非常感谢您的帮助/推荐

希望您已经解决了这个问题,但以防万一:

  • 我用“objectCategory”代替“objectClass”,因为我知道前者是索引的,因此速度更快

  • 我必须添加此属性:

    property name=“分配组”value=“域用户”

  • 其中“域用户”是我们所有用户所在的广告组。这必须与sun-web.xml中用于安全角色映射的值相匹配


    后来,我为这个应用程序创建了一个特定的组,并进行了相应的更改。

    希望您已经解决了这个问题,但以防万一:

  • 我用“objectCategory”代替“objectClass”,因为我知道前者是索引的,因此速度更快

  • 我必须添加此属性:

    property name=“分配组”value=“域用户”

  • 其中“域用户”是我们所有用户所在的广告组。这必须与sun-web.xml中用于安全角色映射的值相匹配


    后来,我为这个应用程序创建了一个特定的组,并进行了相应的更改。

    试图解决这个问题真让人恼火。。。Glassfish 3.0.1正在尝试与Windows连接,并出现上述错误

    我根本不是Windows或LDAP的天才。。。但最终发现:

    最后一行是关键:使用“全局编录端口”——默认情况下是3268,而不是389。例外情况消失了

    为什么?

    谁在乎呢


    (好吧,好吧,我现在就来读一下。)

    试图解决这个问题真让人恼火。。。Glassfish 3.0.1正在尝试与Windows连接,并出现上述错误

    我根本不是Windows或LDAP的天才。。。但最终发现:

    最后一行是关键:使用“全局编录端口”——默认情况下是3268,而不是389。例外情况消失了

    为什么?

    谁在乎呢


    (好吧,我现在就来读一下。)

    这是我在domain.xml文件中使用的配置,可能对您有一些影响:

    <auth-realm classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm" name="ldapRealm"> 
          <property name="search-bind-password" value="Demodemo01"/> 
          <property name="search-bind-dn" value="Administrator"/> 
          <property name="search-filter" value="(&amp;(objectClass=user)(sAMAccountName=%s)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"/> 
          <property name="group-search-filter" value="(&amp;(objectClass=group)(member=%d))"/> 
          <property name="jaas-context" value="ldapRealm"/> 
          <property name="base-dn" value="CN=Users,DC=saierp,DC=net"/> 
          <property name="directory" value="ldap://192.168.1.38:389"/> 
    </auth-realm>
    
    
    

    特别是,请确保将
    userAccountControl
    添加到您的筛选器中,否则,AD中已禁用的帐户将被允许连接。

    这是我在我的domain.xml文件中使用的配置,它可能对您有一些影响:

    <auth-realm classname="com.sun.enterprise.security.auth.realm.ldap.LDAPRealm" name="ldapRealm"> 
          <property name="search-bind-password" value="Demodemo01"/> 
          <property name="search-bind-dn" value="Administrator"/> 
          <property name="search-filter" value="(&amp;(objectClass=user)(sAMAccountName=%s)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"/> 
          <property name="group-search-filter" value="(&amp;(objectClass=group)(member=%d))"/> 
          <property name="jaas-context" value="ldapRealm"/> 
          <property name="base-dn" value="CN=Users,DC=saierp,DC=net"/> 
          <property name="directory" value="ldap://192.168.1.38:389"/> 
    </auth-realm>
    
    
    
    特别是,请确保将
    userAccountControl
    添加到您的筛选器中,否则,将允许AD中禁用的帐户进行连接