Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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 向JNDI LDAP连接添加分页支持会导致AuthenticationException_Java_Active Directory_Ldap_Jndi - Fatal编程技术网

Java 向JNDI LDAP连接添加分页支持会导致AuthenticationException

Java 向JNDI LDAP连接添加分页支持会导致AuthenticationException,java,active-directory,ldap,jndi,Java,Active Directory,Ldap,Jndi,我们开发了一些Java软件,其中包括LDAP连接: final DirContext dirContext = new InitialDirContext(new Hashtable<>(env)); 我不知道去哪里找,找什么。可能Active Directory只支持LDAP v2(这可能吗)?我们的代码中缺少什么?这是LDAP管理员只能解决的配置问题吗?有人能帮忙吗? 提前多谢 问候,, Manuel版本的LDAP应该显示在rootDSE中,AD确实支持LDAPv3。我记得,L

我们开发了一些Java软件,其中包括LDAP连接:

final DirContext dirContext = new InitialDirContext(new Hashtable<>(env));
我不知道去哪里找,找什么。可能Active Directory只支持LDAP v2(这可能吗)?我们的代码中缺少什么?这是LDAP管理员只能解决的配置问题吗?有人能帮忙吗? 提前多谢

问候,,
Manuel

版本的LDAP应该显示在rootDSE中,AD确实支持LDAPv3。我记得,LDAPv2没有控件或扩展。@jwilleke没错,v2不支持控件。但是,目标广告与v3兼容(几分钟前我从管理员那里得到了这些信息),因此我不知道我们的实现有什么问题:([LDAP:错误代码49..data 52e清楚地表明密码对提供的用户无效。@jwilleke我知道,但正如我所写,当我使用
new InitialDirContext(new Hashtable(env));
其中
env
new InitialLdapContext(new Hashtable(env),null)中的密码完全相同;
LDAP的版本应该显示在rootDSE中,AD支持LDAPv3。我记得,LDAPv2没有控件或扩展。@jwilleke没错,v2不支持控件。但是,目标AD与v3配合使用(我几分钟前从管理员那里得到了此信息),所以我不知道我们的实现有什么问题:([LDAP:错误代码49..data 52e清楚地表明密码对提供的用户无效。@jwilleke我知道,但正如我写的,当我使用
new InitialDirContext(new Hashtable(env))时,我没有发现异常。);
其中
env
新InitialLdapContext(新哈希表(env),null)中的内容完全相同;
final InitialLdapContext ctx =  new InitialLdapContext(new Hashtable<>(env), null);
ctx.setRequestControls(new Control[] { new PagedResultsControl(pageSize, Control.NONCRITICAL) });
...
javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090421, comment: AcceptSecurityContext error, data 52e, v23f0^@]
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3136)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3082)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2883)
    at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2797)
    at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:319)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:210)
    at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:153)
    at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:83)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
    at javax.naming.InitialContext.init(InitialContext.java:244)
    at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
java.naming.ldap.version=3