Я использую Spring Security с LDAP. В соответствии с политикой компании должна быть возможность входа в систему с четырьмя различными вариантами имени пользователя, каждый из которых содержит идентификатор пользователя: xxID, ID, [email protected] и [email protected].
Я аутентифицирую как: .userSearchFilter ("(& (objectClass = person) (uid = {0}))") где uid должен быть xxID. Можно ли предварительно обработать имя пользователя, чтобы все варианты были возможны (при использовании ldapauthentication ())?
Вся моя конфигурация аутентификации:
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.ldapAuthoritiesPopulator((userData, username) -> {
..get authorities from database
})
.userSearchFilter("(&(objectClass=person)(uid = {0}))")
.contextSource().url(env.getProperty("spring.ldap.urls", String[].class)[0]);
}
Лучший
@Am_I_Helpful Я бы использовал uid во всех случаях, просто получая uid из введенного имени пользователя (uid = {0}) - вопрос в том, как это сделать :)
Насколько мне известно, я могу представить только два варианта имени пользователя: - sAMAccountName и UPN.