Authentication 应用程序用户对用户的LDAP身份验证
我不熟悉LDAP身份验证。我想用用户的LDAP凭据对用户进行身份验证。 为此,我从服务器上获得了应用程序凭据,以便对其他用户进行身份验证 我作为应用程序用户的凭据如下:Authentication 应用程序用户对用户的LDAP身份验证,authentication,ldap,Authentication,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
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;
}
公共字符串ldap()
{
字符串值=null;
SearchControls约束=新的SearchControls();
Hashtable env=新的Hashtable();
put(Context.INITIAL_Context_工厂,“com.sun.jndi.ldap.LdapCtxFactory”);
env.put(Context.PROVIDER\u URL,“ldap://xx.xx.xx.xx:389");
环境put(Context.SECURITY_认证,“simple”);
环境put(Context.SECURITY_PRINCIPAL,“uid=uidxx,ou=applications,dc=dcxx”);
环境put(上下文安全证书,“passxx”);
试一试{
DirContext ctx=新的初始DirContext(env);
value=“处理完毕”;
}
捕获(身份验证异常e)
{
value=“无效的用户名或密码”;
}
捕获(NamingE例外){
e、 printStackTrace();
value=“发生异常”;
}
返回值;
}
我得到的返回值为“处理完毕”
现在,我想对我已知其邮件id和密码的其他用户进行身份验证。
这就像我想用其他用户的mailid和密码对他们进行身份验证一样,为此我让uidxx和passxx对他们进行身份验证。
我该怎么做
没有从其他渠道得到太多帮助
感谢您针对LDAP公共工作流进行身份验证
这是因为给每个用户对数据库中对象的RW权限是很常见的。如果您希望用户能够更改自己的密码,这将非常有用 谢谢托马斯789。我对数据库服务器具有只读访问权限。我的凭证是uidxx、passxx和问题中提到的应用程序。现在这些凭证是用来认证我的,这样我就可以用他们的邮件id和密码认证其他用户。我通过上面的代码成功地验证了我的身份。现在我想验证我的应用程序中的其他人。“我该怎么做?”擎天柱我很肯定我已经回答了这个问题。正如我上面提到的,在步骤1中,您使用凭据进行绑定,在步骤3中,您使用用户凭据进行绑定。如果成功,则用户提供有效凭据,否则他不会。步骤1和2仅用于获取用户的DN(不是您的DN),如果您已经知道这一点,您可以直接跳到步骤3(当用户提供电子邮件地址或名称或类似内容时,通常不需要这样做)