Я пытаюсь интегрировать весеннюю аутентификацию со встроенным ldap.
У меня есть информация о пользователе в локальном файле ldif.
Пользователь1
dn: uid=joe,ou=otherpeople,dc=springframework,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Joe Smeth
sn: Smeth
uid: joe
userPassword: joespassword
Пользователь 2
dn: uid=bob,ou=people,dc=springframework,dc=org
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Bob Hamilton
sn: Hamilton
uid: bob
userPassword: bobspassword
Spring WebsecurityConfigFile
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().fullyAuthenticated()
.and()
.formLogin();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("uid={0},ou=people")
.contextSource()
.url("ldap://localhost:8389/dc=springframework,dc=org")
.and()
.passwordCompare()
.passwordAttribute("userPassword");
}
}
userDnPattern в файле конфигурации я взял ou=people (uid={0},ou=people), поэтому я могу аутентифицировать bob. Когда дело доходит до joe, его путь к каталогу отличается. Поэтому я не могу войти в систему, используя имя пользователя и пароль Джо.
Какой должна быть моя SpringConfiguration для аутентификации всех пользователей независимо от структуры каталогов?