2015-05-28 114 views

回答

1

嘗試用下面的代碼:

private static String ldapUrl = "ladp//url:port"; 
    private static String contextFactory = "com.sun.jndi.ldap.LdapCtxFactory"; 
    private static String securityAuthType = "simple"; 
    private static String securityPrincipal = "your service account"; 
    private static String securityCredentials="password"; 




    public static void main(String[] args) { 
     try {    
       Hashtable env = new Hashtable(); 
      env.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory); 
      env.put(Context.PROVIDER_URL, ldapUrl); 
      env.put(Context.SECURITY_AUTHENTICATION, securityAuthType); 
      env.put(Context.SECURITY_PRINCIPAL, securityPrincipal); 
      env.put(Context.SECURITY_CREDENTIALS, securityCredentials); 

      DirContext context = new InitialDirContext(env); 

      SearchControls ctrl = new SearchControls(); 
      ctrl.setSearchScope(SearchControls.SUBTREE_SCOPE); 

      NamingEnumeration enumeration = context.search("dc=xxx,dc=com", query, ctrl); 

      while (enumeration.hasMore()) { 
       SearchResult result = (SearchResult) enumeration.next(); 

       Attributes attribs = result.getAttributes(); 
       System.out.println("Attributes:"+attribs); 
       NamingEnumeration<String> attribsIDs = attribs.getIDs(); 
       System.out.println(attribsIDs); 
       // loop on attributes 
       StringBuffer output = new StringBuffer(); 
       int iAttr = 0; 
       while (attribsIDs.hasMore()) { 

        String attrID = attribsIDs.next(); 
        System.out.println("AttributeId:"+ iAttr+" "+attrID); 
        NamingEnumeration values = ((BasicAttribute) attribs.get(attrID)).getAll(); 
       System.out.println("Naming Enumertaion Values"+ values); 
+0

感謝您的幫助... –

+0

此代碼對您有用嗎?或者您需要任何其他信息? –

相關問題