내 웹 응용 프로그램 사용자가 LDAP 및 추가 사용자 정의 인증으로 인증되기를 바랍니다. Kotlin에서 작성된 스프링 부트 응용 프로그램입니다. CustomAuthenticationProvider가 성공적으로 인증하는 경우 (기능 인증합니다 던져하지 않습니다) 그래서 인증은 LDAP 인증 공급자를 사용하여 계속 체인 내가 원하는스프링 보안 인증 성공 사례 여러
@Autowired
lateinit var authenticationProvider: CustomAuthenticationProvider
override fun configure(auth: AuthenticationManagerBuilder) {
auth
.authenticationProvider(authenticationProvider)
auth
.ldapAuthentication()
.userDnPatterns("uid={0},ou=people")
.groupSearchBase("ou=groups")
.contextSource()
.url("ldap://localhost:8389/dc=example,dc=com")
.and()
.passwordCompare()
.passwordEncoder(PlaintextPasswordEncoder())
.passwordAttribute("userPassword")
}
인증을 다음과 같이 나는 AuthenticationManagerBuilder을 구성했습니다.
CustomAuthenticationProvider가 성공적으로 인증되면 작성된대로 LDAP 인증 (및 이후의 인증 공급자)은 평가되지 않습니다. CustomAuthenticationProvider가 throw되는 경우에만 LDAP 인증이 수행됩니다.
여러 인증 공급자를 갖지만 AND 동작보다는 OR 동작을 갖는 많은 기사 (예 : Multiple Authentication Providers in Spring Security)를 읽었습니다. 어떤 제안?
어떻게 가능합니까? 인증 공급자가 인증을 제공하는 경우 LDAP 인증이 필요한 이유는 이미 인증 된 것입니다. 유일한 방법은 인증 공급자가 인증을 노출하지 않는 것입니다. 그래서 당신은 아직 인증되지 않았습니다. – dur