从 ldap 服务器获取所有用户名
Get all user's names from ldap servers
我是一名大学生,我正在 springboot 中执行一个应用程序以使用 ldap 对用户进行身份验证。
我可以用 ldap.unboundid 做到这一点,但现在我想显示 ldap 服务器上所有用户的名称,这可能吗?如果可以,你能举一些例子吗?
这是我在 ldap 中对用户进行身份验证的代码:
public class LDAPAuthentication implements Authentication {
LdapConfigurations ldapConfig;
LDAPConnection ldapConnection;
SearchResult searchResult;
public LDAPAuthentication(LdapConfigurations ldapConfig) {
this.ldapConfig = ldapConfig;
}
@Override
public UserEntity authenticate(String username, String password) {
try {
LDAPURL ldapUrl = new LDAPURL(ldapConfig.getUrl());
LDAPConnectionOptions ldapConnectionOptions = new LDAPConnectionOptions();
ldapConnectionOptions.setConnectTimeoutMillis(50);
ldapConnection = new LDAPConnection(ldapConnectionOptions, ldapUrl.getHost(), ldapUrl.getPort(),
username + ldapConfig.getLdapDomain(), password);
ldapConnection.bind(username + ldapConfig.getLdapDomain(), password);
String lookup = String.format("(%s=%s)", "sAMAccountName", username);
SearchRequest searchRequest = new SearchRequest(ldapConfig.getBaseDn(), SearchScope.SUB, lookup);
searchResult = ldapConnection.search(searchRequest);
ldapConnection.close();
} catch (LDAPException e) {
e.printStackTrace();
return null;
}
如果您要查询 AD,则需要对 AD 进行更改,或者,您需要分页结果。在 https://docs.ldap.com/ldap-sdk/docs/getting-started/controls.html
搜索 "The Simple Paged Results Control"
我是一名大学生,我正在 springboot 中执行一个应用程序以使用 ldap 对用户进行身份验证。 我可以用 ldap.unboundid 做到这一点,但现在我想显示 ldap 服务器上所有用户的名称,这可能吗?如果可以,你能举一些例子吗?
这是我在 ldap 中对用户进行身份验证的代码:
public class LDAPAuthentication implements Authentication {
LdapConfigurations ldapConfig;
LDAPConnection ldapConnection;
SearchResult searchResult;
public LDAPAuthentication(LdapConfigurations ldapConfig) {
this.ldapConfig = ldapConfig;
}
@Override
public UserEntity authenticate(String username, String password) {
try {
LDAPURL ldapUrl = new LDAPURL(ldapConfig.getUrl());
LDAPConnectionOptions ldapConnectionOptions = new LDAPConnectionOptions();
ldapConnectionOptions.setConnectTimeoutMillis(50);
ldapConnection = new LDAPConnection(ldapConnectionOptions, ldapUrl.getHost(), ldapUrl.getPort(),
username + ldapConfig.getLdapDomain(), password);
ldapConnection.bind(username + ldapConfig.getLdapDomain(), password);
String lookup = String.format("(%s=%s)", "sAMAccountName", username);
SearchRequest searchRequest = new SearchRequest(ldapConfig.getBaseDn(), SearchScope.SUB, lookup);
searchResult = ldapConnection.search(searchRequest);
ldapConnection.close();
} catch (LDAPException e) {
e.printStackTrace();
return null;
}
如果您要查询 AD,则需要对 AD 进行更改,或者,您需要分页结果。在 https://docs.ldap.com/ldap-sdk/docs/getting-started/controls.html
搜索 "The Simple Paged Results Control"