0
我是LDAP验证的新用户。我想用他们的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来验证它们。 我应该怎么做?
没有从其他来源获得太多帮助。
谢谢
感谢tomas789。我只读了数据库服务器的访问权限。我的凭证是uidxx,passxx和应用程序,如上所述。现在,这些凭证用于验证我的身份,以便使用他们的邮件ID和密码验证其他用户。上述代码验证了我的成功。现在我想在我的应用程序中验证其他人。我应该怎么做? –
@Optimus我很确定我已经回答了这个问题。在上述第1步中,您使用您的凭证进行绑定,并在第3步中使用USER的凭证进行绑定。如果它成功用户提供的有效凭证,否则他没有。如果你已经知道这一点,你可以直接跳到步骤3(当用户提供电子邮件地址或名称或类似的东西时,这个步骤通常不是特别的),所以步骤1和步骤2只需获取用户的DN(不是你的) – tomas789