我正在研究一个
java Web应用程序,应使用现有的ldap服务器对其进行身份验证.我不需要从服务器获取用户的信息.我只需要检查ldap中是否存在用户名和密码.我使用tomcat服务器作为Web应用程序.
这是我发现在互联网上搜索的内容,应该包含在server.xml文件中,并在tomcat服务器中包含相关参数.我在这个特定的指南中做了一切.
connectionURL="ldaps://192.168.0.8:636"
alternateURL="ldap://192.168.0.7:636"
userBase="ou=people,dc=willeke,dc=com"
userSearch="(cn={0})"
userSubtree="true"
userRoleName="dictcrole"
connectionName="cn=admin,ou=...,dc=willeke,dc=com"
connectionPassword="removed"
/>
我对xml和服务器了解不多.有人可以指导我用servlet做这个吗?
最佳答案 有几个图书馆
您可以使用:unboundid sdk
进口:
import com.unboundid.ldap.sdk.LDAPConnection;
import com.unboundid.ldap.sdk.SearchResult;
import com.unboundid.ldap.sdk.SearchScope;
你做了一个连接:
LDAPConnection ldap = new LDAPConnection("ldap.example.com", 389);
您搜索您的用户名
SearchResult sr = ldap.search("dc=People,dc=example,dc=com", SearchScope.SUB, "(uid=" + username + ")");
if (sr.getEntryCount() == 0)
System.out.println("KO");
你得到尊贵的名字:
String dn = sr.getSearchEntries().get(0).getDN();
那么,对于密码,一个解决方案:连接:
ldap = new LDAPConnection("ldap.example.com", 389, dn, password);
还有javax.naming