2017-10-23 4 views
1

LDAP의 경우 LDAP 테스트 서버를 Forumsys으로 사용하고 사용자 및 포럼 키 LDAP 그룹을 the link으로 볼 수 있습니다.JAVA를 사용하여 LDAP에서 사용자 정보 가져 오기

사용자의 정보를 그룹에서 가져오고 싶습니다. 자바에서 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); 
:

그러나 그것은 당신이 인쇄 할 수있는 몇 가지 속성을 가지고 않습니다