java web集成ldap_使用java Web应用程序中的现有ldap服务器对用户进行身份验证

呼延哲
2023-12-01

我正在研究一个

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

 类似资料: