gpt4 book ai didi

java - 使用JAVA从LDAP获取用户信息

转载 作者:行者123 更新时间:2023-11-30 06:27:24 28 4
gpt4 key购买 nike

对于 LDAP,我使用 LDAP 测试服务器,即 Forumsys我们可以在the link中看到Forumsys 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);
}
}
}

最佳答案

ou=chemists 在您正在查找的目录中为空。因此它没有子绑定(bind),因此 while 循环永远不会执行。

但是它确实有一些属性,您可以使用这些属性进行打印:

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

关于java - 使用JAVA从LDAP获取用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46898439/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com