gpt4 book ai didi

java - ldap通过java检查用户名密码组合

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:33 24 4
gpt4 key购买 nike

要使用 ldap 测试用户名-密码组合,我执行以下操作

  1. 使用主用户帐户连接到 ldap 服务器
  2. 搜索要检查的用户
  3. 使用 InitialLdapContext 和给定的组合打开另一个连接。

这对我来说很好用,直到我注意到一些正确的组合不起作用。 (这些大多是不久前创建的帐户)

有没有办法将用户列在 ldap 目录中,但不允许连接到 ldap 服务器本身?!我当前的代码只是使用 masteruser 来搜索要检查的用户名,但最后它只是一个与要检查的用户名-密码组合的新连接。

我是否应该与 masteruser 连接,然后使用用户名-密码组合进行绑定(bind)?

这是我检查组合的部分:

static boolean CheckLDAPConnection(String user_name, String user_password) {    
try {
Hashtable<String, String> env1 = new Hashtable<String, String>();
env1.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env1.put(Context.SECURITY_AUTHENTICATION, "simple");
env1.put(Context.SECURITY_PRINCIPAL, user_name);
env1.put(Context.SECURITY_CREDENTIALS, user_password);
env1.put(Context.PROVIDER_URL, ip);
try {
//Connect with ldap
new InitialLdapContext(env1, null);

//Connection succeeded
System.out.println("Connection succeeded!");
return true;
} catch (AuthenticationException e) {

//Connection failed
System.out.println("Connection failed!");
e.printStackTrace();
return false;
}
}
catch (Exception e) {
}
return false;
}

最佳答案

找到用户的 DN 后,您应该将这些凭据添加到第一个上下文的环境中,然后尝试重新连接()。执行 LDAP 绑定(bind)操作。

关于java - ldap通过java检查用户名密码组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7517650/

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