我是LDAP身份验证的新手。我想用LDAP凭据验证用户身份。 为此,我从服务器获得了应用程序凭据,以便我可以对其他用户进行身份验证。
我的凭据作为应用程序用户如下:
Test LDAP Server IP: xx.xx.xx.xx
Port: 389
Bind DN:uid=uidxx,ou=applications,dc=dcxx
password: passxx
为了验证此用户,我已将代码编写为
public String ldap()
{
String value=null;
SearchControls constraints= new SearchControls();
Hashtable<String, String> env= new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL,"ldap://xx.xx.xx.xx:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,"uid=uidxx, ou=applications, dc=dcxx");
env.put(Context.SECURITY_CREDENTIALS,"passxx");
try {
DirContext ctx = new InitialDirContext(env);
value = "Done with it";
}
catch(AuthenticationException e)
{
value = "Invalid User name or password";
}
catch (NamingException e) {
e.printStackTrace();
value = "Exception occurred";
}
return value;
}
我的返回值为"Done with it"
现在,我想验证其他用户的邮件ID和密码是我所知道的。 它就像我想要使用他们的mailid,密码验证其他用户,为此我得到了uidxx和passxx来验证它们。 我该怎么做?
其他来源没有得到太多帮助。
谢谢
答案 0 :(得分:0)
对LDAP通用工作流进行身份验证时
这是有效的,因为在每个用户对数据库中的对象赋予RW权限是很常见的。如果您希望用户能够更改自己的密码,这非常有用。