2
package mypack;

import java.util.*;
import javax.naming.*;
import javax.naming.directory.*;

public class ADCheck {
    public static void main(String[] args) {
        try {
            Hashtable env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
            env.put(Context.PROVIDER_URL,"LDAP://myad.com:385"); 
            env.put(Context.SECURITY_AUTHENTICATION,"DIGEST-MD5"); 
            env.put(Context.SECURITY_PRINCIPAL,"MY_USER_NAME"); 
            env.put(Context.SECURITY_CREDENTIALS, "MY_PASSWORS");  
            DirContext ctx = new InitialDirContext(env);
            ctx.close();
        } catch(NamingException ne) {
            System.out.println("Error authenticating user:");
            System.out.println(ne.getMessage());
            return;
        }
        System.out.println("OK, successfully authenticating user");
    }
}

得到错误:

javax.naming.AuthenticationException:[LDAP:错误代码 49 - 8009030C:LdapErr:DSID-0C09043E,注释:AcceptSecurityContext 错误,数据 0,vece。

请帮忙

4

1 回答 1

0

https://www.fuzeqna.com/sonicwallkb/consumer/kbdetail.asp?kbid=5266

在测试对 Active Directory 服务器的身份验证时,您可能会看到以下错误:

身份验证错误:[LDAP:错误代码 49 - 8009030C:LdapErr:DSID-0C09043E,注释:AcceptSecurityContext 错误,数据 0,vece]。

解决方案或解决方法:

如果远程域配置中的主机类型不正确,则会发生这种情况。将主机类型更改为 Active Directory(反之亦然):

还要检查 http://www.websina.com/bugzero/faq/ldap-error-code-49.html

A:这个错误是
java.naming.security.principal设置错误造成的。

此处必须使用完整的 DN,例如:

CN=FName LName,OU=OrgUnit_the_user_stored_in,DC=Domain_name,DC=Domain_suffix

于 2013-05-13T09:35:03.880 回答