从AD服务器使用身份验证时出错

时间:2013-05-13 09:18:12

标签: java

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。

请帮助

1 个答案:

答案 0 :(得分: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

  

答:此错误是由于错误的设置引起的   java.naming.security.principal。

     

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

     

CN = FName参数   LName的,OU = OrgUnit_the_user_stored_in,DC =域名称,DC = Domain_suffix