Получить все имена пользователей с серверов ldap - PullRequest
0 голосов
/ 20 марта 2019

Я студент колледжа, и я делаю заявление в 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;

    }

1 Ответ

1 голос
/ 21 марта 2019

Если вы запрашиваете AD, вам нужно внести изменения в AD, или вам понадобятся постраничные результаты. поиск "Простое управление результатами постраничного поиска" в https://docs.ldap.com/ldap-sdk/docs/getting-started/controls.html

...