我正在尝试开发一个web项目,但需要用LDAP对用户进行身份验证,我正在做这样的事情:
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.PROVIDER_URL, "ldap://host:port");
env.put(Context.SECURITY_PRINCIPAL,"user@hostname.lab.local");
env.put(Context.SECURITY_CREDENTIALS, "mysecret");
env.put(Context.REFERRAL,"follow");
DirContext ctx = new InitialDirContext(env);
我没有得到任何错误,但是我需要检查用户的状态,以便给予访问。我还应该做什么?我走的路对吗?
LDAP身份验证分两步进行。
- 您绑定到LDAP作为一个管理用户,有足够的权限来查找用户基于他的电子邮件地址或其他任何你正在使用的用户名。
- 使用该用户的DN作为主体,并使用该用户提供的密码作为凭据,尝试绑定该用户。