1

これは次のプログラムで、一部の ADS サーバー (2008 サーバーに展開) では正常に動作しますが、AD サーバー (2012 サーバーに展開) に展開された AD サーバーには接続できません。次の例外 wgile connections が発生しています

[LDAP: エラー コード 49 - 8009030C: LdapErr: DSID-0C0903C5、コメント: AcceptSecurityContext エラー、データ 2030、v23f0]

JXplorer の使用中にも同じ例外が発生します。

誰でもこれについて私を助けることができますか?

import java.util.Hashtable;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;

public class TestLdap {

    public static void main(String[] args) {

        String base = "";  

        String filter = "(objectclass=*)";  

        Hashtable<String,String> env = new Hashtable<String,String>();  
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");  
        env.put(Context.PROVIDER_URL, "ldap://example.com:389/dc=example,dc=com");  
        env.put(Context.SECURITY_AUTHENTICATION, "simple");  
        env.put(Context.SECURITY_PRINCIPAL, "test@example.com");  
        env.put(Context.SECURITY_CREDENTIALS, "secret");  
        try {  

            DirContext dc = new InitialDirContext(env);  

            SearchControls sc = new SearchControls();  
            sc.setSearchScope(SearchControls.OBJECT_SCOPE);  
            NamingEnumeration ne = null;  

            while (ne.hasMore()) {  

                SearchResult sr = (SearchResult) ne.next();  
                System.out.println(sr.toString()+"\n");  
            }  

            dc.close();  
        } catch (NamingException nex) {  

            System.err.println("Error: " + nex.getMessage());  
        } 

    }

}
4

1 に答える 1