2012-03-08 115 views
2

我正在嘗試在使用java的本地活動目錄上查找用戶。
當我嘗試執行代碼,我得到以下錯誤:嘗試在活動目錄中執行LDAP查找時出錯

錯誤:

Lookup failed: javax.naming.NamingException: [LDAP: error code 1 - 000004DC: Lda pErr: DSID-0C0906DC, comment: In order to perform this operation a successful bi nd must be completed on the connection., data 0, v1db1 ]; remaining name: 'CN= John Doe, OU=Accounts'

誰能告訴我什麼,我做錯了嗎?

我的代碼:

import java.util.Hashtable;  
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.naming.NamingException; 
import javax.naming.ldap.LdapContext; 

/** 
* Demonstrates how to look up an object. 
* 
* usage: java Lookup 
*/ 
class Lookup { 
    public static void main(String[] args) { 

     // Set up the environment for creating the initial context 
     Hashtable env = new Hashtable(11); 
     env.put(Context.INITIAL_CONTEXT_FACTORY, 
       "com.sun.jndi.ldap.LdapCtxFactory"); 
     env.put(Context.PROVIDER_URL, 
       "ldap://localhost:389/DC=PORTAL-UAT,DC=COMPANY,DC=COM"); 

     try { 
      // Create the initial context 
      Context ctx = new InitialContext(env); 

      // Perform lookup and cast to target type 
      LdapContext b = (LdapContext) ctx 
        .lookup("CN=John Doe,OU=Accounts"); 

      System.out.println(b); 

      // Close the context 
      ctx.close(); 
     } catch (NamingException e) { 
      System.out.println("Lookup failed: " + e); 
     } 
    } 
} 

回答

4

作爲錯誤消息指出必須執行綁定操作,即登錄到AD。這裏是Oracle的LDAP Authentication教程。

+0

得到了綁定認證工作。 – Andreas 2012-03-12 09:56:44

3

編碼器應該使用ldapsearch命令行實用程序來驗證連接可以是 確定綁定DN的憑證是正確的。這種低級方法將確保可以從客戶端系統到目標目錄服務器建立連接。這 是一個基本的故障排除技術。

欲瞭解更多信息,請參閱LDAP: Programming Practices

+1

-1我不明白這是如何回答這個問題的。錯誤消息和代碼示例包含足夠的信息進行故障排除。 – 2012-03-08 13:54:09

+2

答案與目錄服務器,並指向正確的概念的理解其中的回答這個問題時尤其如此專門解決一個基本的故障排除技術。如果海報瞭解錯誤信息,則問題不會被詢問。當沒有詳細解釋基本技巧時,海報就會被留在黑暗中,將來無法回答自己的問題。 – 2012-03-08 13:58:44

+0

我同意你的看法,但我認爲,這是第一個比較合適的解釋則錯誤消息表示,提供基本的故障診斷方法,其海報可能會或可能不知道的。 – 2012-03-08 14:02:36