0
ユーザー名を指定してユーザーDNを取得したいとします。 私は、すべてのユーザーデータを取得し、ユーザー名と比較したいと考えています。 これで、検索フィルターにobjectclassが追加されました。なぜデータが取得されないのかわかりません。 ここに私が現在持っているコードがあります。ユーザー名がLDAPのユーザーDNを取得する
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, url);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=admin,ou=sa,o=system");
env.put(Context.SECURITY_CREDENTIALS, "[email protected]");
try{
DirContext context = new InitialDirContext(env);
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration result = context.search("", "(objectclass=Person)", constraints);
while(result.hasMore())
{
SearchResult searchResult = (SearchResult) result.next();
Attributes attrs = searchResult.getAttributes();
request.setEmail(attrs.get("mail").toString());
request.setPhoneNumber(attrs.get("personalMobile").toString());
Attribute ldapattr = attrs.get("photo");
if(ldapattr != null){
byte[] photo = (byte[])ldapattr.get();
request.setPhoto(photo);
}
}
}catch(Exception e){
System.out.println("can't initialized");
}
list.add(request);
//Specific URL of LDAP with the host and :port
return list;
}
をお持ちの場合は
あなたはデバッグしようとしたことがありますか?そこには何が見えますか?ここでガイダンスを確認してくださいhttps://gist.github.com/sharomank/4592463 –
なぜこれをしますか?一致させる属性で検索する必要があります。たとえば、 '(&(objectClass = Person)(username = {0}))'とします。あなたが何を求めているのか不明です。 – EJP
私が望んだのは、指定された名前を使用してユーザーDNを見つけることです。 –