Spring Безопасность: проверка подлинности и поиск LDAP - PullRequest
0 голосов
/ 02 августа 2020

Я хочу преобразовать обычную интеграцию Spring LDAP в приложение Spring Security. У меня есть такой контекст приложения.

<ldap:context-source
            url="ldap://euro.mo.xyz.com:389"
            base="ou=prod,dc=euro,dc=mo,dc=xyz,dc=com"
            username="mydomain\mohan06"
            password="hotStar56" />

Когда я использовал passwordCompare и userDn, я получил следующее исключение

javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C09075A, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1]

После просмотра некоторых советов в Интернете

Я пробовал использовать managerDn, как показано ниже

protected void configure(AuthenticationManagerBuilder auth) throws Exception {
                auth.ldapAuthentication()               
                .userDnPatterns("OU=prod,DC=euro,DC=mo,DC=xyz,DC=com")
                .userSearchFilter("sAMAccountName={0}")
                .userSearchBase("OU=prod,DC=euro,DC=mo,DC=xyz,DC=com")
                .contextSource()
                .url("ldap://ptklt.euro.mo.xyz.com:389")                       
                .managerDn("CN=mydomain\\\\mohan06,OU=prod,DC=euro,DC=mo,DC=xyz,DC=com")
                .managerPassword("hotStar56")
                .root("OU=prod,DC=euro,DC=mo,DC=xyz,DC=com");

Но теперь я получаю следующую ошибку, хотя мои учетные данные в порядке.

AcceptSecurityContext error, data 52e, v1db1 ]; nested exception is javax.naming.AuthenticationException

Нужно ли мне использовать разные учетные данные для сравнения паролей и managerDn?

...