Я установил область безопасности в 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. Я подозреваю, что это проблема DNS на сервере Active Directory. Сервер Active Directory - это обычная установка Windows Server 2003 на виртуальной машине.
Любая помощь / рекомендация высоко ценится!