gpt4 book ai didi

java - 登录 ldap java

转载 作者:行者123 更新时间:2023-12-01 18:15:40 26 4
gpt4 key购买 nike

我有以下代码并且可以工作

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "Simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=" + user + ",cn=Users,dc=test,dc=com");
env.put(Context.PROVIDER_URL, "ldap://93.5.95.5:389");
env.put(Context.SECURITY_CREDENTIALS, pass);

LdapContext ctx = new InitialLdapContext(env, null);
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration objs = ctx.search("dc=test,dc=com", "(objectClass=*)", searchControls);

但我想用 uid 登录。我变了

env.put(Context.SECURITY_PRINCIPAL, "uid=" + user + ",cn=Users,dc=test,dc=com");

我收到错误:

Details: javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]

最佳答案

您只能使用可分辨名称进行绑定(bind),该名称如下所示:

"cn=" + user + ",cn=Users,dc=test,dc=com"

您可以以其他用户(服务帐户)身份登录,然后搜索“uid=user”,这将返回可分辨名称。

我们有一些example code that does something similar .

关于java - 登录 ldap java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60375211/

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