Używam SpringLDAP
API wewnątrz sprężyny webapp oparte kwerendy ActiveDirectory, która jest obsługiwana w systemie Windows Server 2012. Po moich danych środowiskowych są: - Java 1.8.0_101
, apache-tomcat-8.0.36
, SpringMVC 4.3.1
& SpringLDAP 2.3.1
Dlaczego filtry accountExpires i userAccountControl w zapytaniach SpringLDAP/plain Java AD nie działają zgodnie z oczekiwaniami?
Następująca kwerenda pobiera filtr AD dopasowanie kont w opartym na systemie Windows (opartym na C++/C) narzędziu zapytań (np. narzędzie Lepide AD Query), a także wtyczce LDAP Browser w środowisku Eclipse IDE BUT nie pobiera pasujących rekordów/kont AD, gdy są używane w środowisku Java (JNDI/Oparty na SpringLDAP API) kod & również w aplikacji opartej na języku Java JXplorer: -
(&(objectclass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(accountExpires>=131554368000000000)([email protected]*))
Próbuję uzyskać konto użytkownika, który jest aktywny, jeszcze nie minął podano datę i userPrincipalName
wartość początkowa sznurkiem [email protected]
.
Poniżej znajduje się konfiguracja LDAP w pliku spring-servlet.xml
: -
<util:map id="ldapBaseEnvProps">
<entry key="java.naming.ldap.attributes.binary" value="objectGUID"/>
</util:map>
<ldap:context-source id="pooledLdapContextSrc" url="ldap://dc.myadserver.com:3268" base="DC=myadserver,DC=com" username="CN=adusername,OU=Mkt-Managers,DC=myadserver,DC=com" password="*****" base-env-props-ref="ldapBaseEnvProps">
<ldap:pooling max-total="16" max-active="16" max-idle="8" min-idle="0" max-wait="90000" when-exhausted="BLOCK" test-on-borrow="true" test-while-idle="true"/>
</ldap:context-source>
Są takie filtry reklama obsługiwane przez Java/SpringLDAP API w ogóle? Jeśli tak, co należy zmienić, aby powyższy filtr zapytań AD działał (pobierać pasujące konta AD) w kodzie opartym na języku Java?
proszę być bardziej szczegółowe, co masz na myśli przez „IT nie działa'? –