gpt4 book ai didi

java - 使用 javax.naming.spi.DirObjectFactory 从 LDAP 查找对象

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:16 25 4
gpt4 key购买 nike

我已经实现了一个对象工厂来查找 LDAP 对象,但提供的上下文不会从 LDAP 返回 DN(通过 nameCtx.getNameInNamespace())。我在某些方面做错了吗?

public class LdapPersonFactory implements DirObjectFactory {
@Override
public Object getObjectInstance(Object obj, Name name, Context nameCtx,
Hashtable<?, ?> environment, Attributes attrs) throws Exception {
if (attrs == null)
return null;
Attribute oc = attrs.get("objectclass");
if (oc != null && oc.contains("inetOrgPerson")) {
String surname = (String) attrs.get("sn").get();
String givenName = (String) attrs.get("givenname").get();
String dn = nameCtx.getNameInNamespace();
return new LdapPerson(dn, givenName, surname);
}
return null;
}
}

nameCtx.getNameInNamespace() 仅返回空字符串。

最佳答案

String dn = (String) attrs.get("dn").get();

这只会抛出 NamingException
我不认为专有名称 (DN) 是 LDAP 对象的属性,它更像是 LDAP 世界中的身份 key 。

关于java - 使用 javax.naming.spi.DirObjectFactory 从 LDAP 查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/323161/

25 4 0