首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么accountExpires和userAccountControl过滤器在SpringLDAP /普通Java查询中不能正常工作?

为什么accountExpires和userAccountControl过滤器在SpringLDAP /普通Java查询中不能正常工作?
EN

Stack Overflow用户
提问于 2017-11-16 14:25:32
回答 1查看 649关注 0票数 7

我在基于春季的webapp中使用Windows来查询驻留在Windows 2012上的SpringLDAP。以下是我的环境详细信息:- Java 1.8.0_101apache-tomcat-8.0.36SpringMVC 4.3.1SpringLDAP 2.3.1

以下AD过滤器查询获取基于windows (C++/C# )查询工具(例如Lepide AD查询工具)和eclipse中的LDAP浏览器插件中的匹配帐户,但是在基于Java的应用程序JXplorer中使用时不会获取匹配的记录/AD帐户

代码语言:javascript
复制
(&(objectclass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(accountExpires>=131554368000000000)(userPrincipalName=cgm@*))

我正在尝试获取一个用户帐户,该帐户是活动的,在给定日期并以字符串userPrincipalName cgm@开头的cgm@值的情况下尚未过期。

以下是spring-servlet.xml文件中的ldap配置:

代码语言:javascript
复制
<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>

Java/SpringLDAP API完全支持这样的AD过滤器吗?如果是,则需要更改上面的AD查询筛选器才能在基于Java的代码中工作(获取匹配的AD帐户)?

EN

回答 1

Stack Overflow用户

发布于 2017-11-20 21:26:23

我建议在Java中使用Spring的查询生成器对象来帮助您构建该查询。您的问题似乎表明您将该查询从C (windows)环境复制到Java环境中。

首先,在Spring中使用.where()函数构建查询,并查看它是否会导致相同的错误:https://docs.spring.io/spring-ldap/docs/current/apidocs/org/springframework/ldap/query/LdapQueryBuilder.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47332144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档