Tôi đang sử dụng SpringLDAP
API trong mùa xuân webapp dựa để truy vấn ActiveDirectory được lưu trữ trên Windows Server 2012. Sau đây là chi tiết môi trường của tôi: - Java 1.8.0_101
, apache-tomcat-8.0.36
, SpringMVC 4.3.1
& SpringLDAP 2.3.1
Tại sao bộ lọc accountExpires và userAccountControl trong truy vấn Spring ADAP/plain AD không hoạt động như mong đợi?
Các truy vấn lọc AD sau fetches các khớp các công cụ truy vấn dựa trên windows (C++/C#) (ví dụ, công cụ truy vấn AD Lepide) và cũng trong trình cắm LDAP Browser trong IDE nhật thực NHƯ không tìm nạp các bản ghi/tài khoản AD phù hợp khi được sử dụng trong Java (JNDI)/API dựa trên SpringLDAP) & cũng trong ứng dụng dựa trên Java JXplorer: -
(&(objectclass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(accountExpires>=131554368000000000)([email protected]*))
Tôi đang cố gắng để có được một tài khoản người dùng đó là ACTIVE, chưa hết hạn được đưa ra một ngày và với userPrincipalName
giá trị bắt đầu với chuỗi [email protected]
.
Sau đây là cấu hình ldap bên trong file 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>
Lọc nước AD như hỗ trợ bởi Java/SpringLDAP API ở tất cả? Nếu có, những gì cần phải được thay đổi để bộ lọc truy vấn AD ở trên hoạt động (tìm nạp (các) tài khoản AD phù hợp) trong mã dựa trên Java?
xin được cụ thể hơn, điều gì làm bạn có ý nghĩa bởi 'Nó không hoạt động'? –