2017-10-23 25 views
1

LDAPの場合は、LDAPテストサーバーをForumsysとして使用し、ユーザーとグループのユーザーは、the linkに表示されます。JAVAを使用してLDAPからユーザー情報を取得する

自分のグループからユーザーの情報を取得したいと考えています。私は、JavaについてのLDAPに関するいくつかのビデオを見て、やろうとしました。しかし、私はそれらを得ることができません。私のコードはnullを返します。

どうすれば解決できますか?ユーザーとグループの情報を取得する際の問題はどこですか?

この私のコード:

import javax.naming.*; 
import javax.naming.directory.*; 

import java.util.Hashtable; 



public class LDAPV2 { 
    public static void main(String[] args) throws NamingException{ 
     Hashtable <String,String> env = new Hashtable<>(); 
     env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); 
     env.put(Context.PROVIDER_URL,"ldap://ldap.forumsys.com:389/dc=example,dc=com"); 
     env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
     env.put(Context.SECURITY_PRINCIPAL, "uid=boyle,dc=example,dc=com"); 
     env.put(Context.SECURITY_CREDENTIALS, "password"); 

     DirContext context = new InitialDirContext(env); 
     DirContext groupCx = (DirContext) context.lookup("ou=chemists"); 


     NamingEnumeration <Binding> groups = groupCx.listBindings(""); 
     while (groups.hasMore()){ 
      String bindingName = groups.next().getName(); 
      Attributes groupAttributes = groupCx.getAttributes(bindingName); 
      Attribute groupName=groupAttributes.get("cn"); 
      System.out.println(groupName); 
     } 
    } 
} 

答えて

1

ou=chemistsあなたが見上げているディレクトリに空です。したがって、子バインディングがないので、ループは実行されません。while

Attributes groupAttributes = groupCx.getAttributes(""); 
    Attribute groupName = groupAttributes.get("uniqueMember"); 
    System.out.println(groupName); 

しかしそれはあなたがして印刷することができますいくつか属性を、持っていません

関連する問題