Spring Security 설정시authenticationManagerBean() 생성 에러 "A dependency cycle was detected when trying to resolve the AuthenticationManager. Please ensure you have configured authentication."

박일우·2021년 3월 5일
0

Spring Security 설정시 아래 처럼 "WebSecurityConfigurerAdapter"를 상속받은 Security Config Class를 만들고 그 안에서 인증을 담당하는 AuthenticationManager를 생성하기 위해 authenticationManagerBean()을 상속받아 사용하였다.
이 때, 해당 Bean을 외부에서 사용하기 위하여 @Bean 어노테이션을 사용하였다.

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    //Bean을 AUTHENTICATION_MANAGER에 매칭
    @Bean(name = BeanIds.AUTHENTICATION_MANAGER)	
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }
}

하지만 다음과 같은 에러를 뱉어냈다.

해당 에러를 디버깅 해보니, AuthenticationManager를 사용하기 위해 Spring Security에서 제공하는 인증 수단인 UserDetailService를 구현한 클래스가 필요로 한것이였다.
UserDetailService를 구현한 UserService 클래스를 만들어보니 에러가 사라졌다!

profile
열정!열정!열정!

0개의 댓글