LDAP:错误代码49-80090308:LdapErr:DSID-0C09042F,注释:AcceptSecurityContext错误,数据52e,v2580

时间:2019-05-27 12:08:32

标签: java authentication ldap

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;
    }

我不知道为什么会出现此错误。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果您使用简单的授权身份验证,则应使用简短的用户名表格

  

user_test@test.local

我检查了一下,在这种情况下,身份验证有效。在dn形式下,我有完全相同的错误

javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1

您还可以参考早期的线程LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1

答案 1 :(得分:0)