LDAP: error code 49 - 80090308: LdapErr: DSID-0C09042F, comment: AcceptSecurityContext error, data 52e, v2580
我知道“52e”代码是用户名有效,但密码无效。我使用相同的用户名和密码根据Active directory验证用户及其工作状态。
以下是我的java代码:
String userName = "user_test";
String password = "*******";
String base ="DC=test,DC=local";
String dn = "cn="+ userName + "," + "CN=Users," + base;
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, dn);
env.put(Context.SECURITY_CREDENTIALS, password);
env.put(Context.PROVIDER_URL, "ldap://*****.test.local:389");
System.out.println("Attempting to Connect...");
ctx = new InitialLdapContext(env, null);
System.out.println("Connection Successful.");
} catch (NamingException nex) {
System.out.println("LDAP Connection: FAILED");
nex.printStackTrace();
}
return ctx;
}
我不知道为什么会出现这个错误。有人能帮忙吗?
如果您使用简单的权限身份验证,您应该使用短用户名形式
user_test@test.local
我检查过了,在这种情况下,身份验证正在工作。在dn格式中,我得到了完全相同的错误
javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1
您还可以参考前面的线程LDAP:错误代码49-80090308:ldaper:DSID-0C0903A9,注释:AcceptSecurityContext error,data 52e,v1db1
这个错误是相当明确的。
49 52e 1326ERROR_LOGON_FAILURE当用户名有效但密码/凭据无效时返回。
通常,最困难的部分是正确确定DN。