AuthenticationProvider 등록 관해서 질문이 있습니다.
1048
작성한 질문수 16
안녕하세요 선생님.
스프링 부트 2.7.x 버전에서 하기 스크린샷과 같이 설정 하였을때 인증프로바이더가 중복으로 등록 되는 문제가 발생하였습니다.

하기와 같이 인증매니저를 설정을 수정하니
인증프로바이더가 정상적으로 1개 등록되었습니다.
왜 이런 일이 발생하는지 잘 이해가 되지 않아서요..
선생님께서 이유를 아신다면 설명해주시면 감사하겠습니다.
답변 1
0
작성하신 소스 공유 부탁드립니다
저도 실행을 해 봐야 정확한 이유를 알것 같습니다
0
깃 헙 주소: https://github.com/GwanUk/thread_toy_project.git
브랜치: feature/users
0
공유해 주신 소스로 받으니 gradle 이 먹히지 않네요..
일단 제가 가지고 있는 비슷한 소스를 사용해서 테스트 해 보았을 때 의견을 드린다면
위의 코드 중에서
@Bean
public AuthenticationProvider authenticationProvider() {
return new ApiAuthenticationProvider(userDetailsService(), passwordEncoder());
}
가 있습니다.
현재 빈으로 정의 되어 있는데 이 부분을 빈으로 정의하지 않고 일반 객체로 생성할 경우에는 중복 추가가 안되는 것 같습니다
이건 시큐리티 내부에서 AuthenticationProvider 가 사용자 정의에 의해 빈으로 생성되어 있는지를 탐색하게 되는데 빈으로 정의되어 있으면 자동적으로 AuthenticationProvider 를 추가하고 있습니다. 이 상태에서 다시
authenticationManager.getProviders().add(authenticationProvider());
를 했으니 중복으로 추가된다고 보시면 됩니다.
그렇다면 @Bean 을 삭제하고 생성한 상태에서
authenticationManager.getProviders().add(authenticationProvider()); 을 실행하거나
아니면 빈으로 생성하고
authenticationManager.getProviders().add(authenticationProvider());
을 삭제하면 중복으로 추가되지 않을 것 같습니다
관옥님의 소스를 정확하게 실행시켜 본 것이 아니라서 저의 결과와 틀릴 수도 있으나 흐름상 원리는 비슷할 것 같습니다.
인텔리 제이에서 소스를 열면 gradle 이 비활성화 되어 있는데 깃헙 소스를 한번 확인 부탁드립니다.
0
답변해주셔서 감사합니다.
ApiAuthenticationProvider를 빈으로 등록하지 않고 매니저에 수동으로 등록 하여authenticationManager.getProviders().add(authenticationProvider());
테스트 하였을때는 DaoAuthenticationProvider, ApiAuthenticationProvider 등록되었고,
ApiAuthenticationProvider를 빈으로 등록하고 매니저에는 따로 등록을 안하고 테스트 했을때는ApiAuthenticationProvider만 등록되었습니다.
감사합니다
시큐리티 공부 버전 질문
0
175
1
[해결 방법] MethodSecurityConfig.customMethodSecurityMetadataSource() 호출하지 않는 이슈
0
186
1
AbstractSecurityInterceptor.class.beforeInvocation()를 2번 실행하는 경우
0
174
1
강의 코드가 왜이렇게 뒤죽박죽인가요...
0
249
1
메인 페이지로 접속해도 login url로 리다이렉트가 되지 않습니다..
0
236
1
파라미터값이 넘어가지 않습니다 ....
0
374
1
security filterChain 설정 질문이 있습니다.
0
332
1
소스 부분 질문 드립니다.
0
208
2
섹션4 7번 강의 문제가 있는거 같네요.
0
344
2
파일이 수시로 이름이 바껴있네요 ㄷㄷ
0
304
1
HttpSessionSecurityContextRepository를 사용안하는 문제
0
555
2
error , exception 이 잘 안됩니다.
0
282
2
thymeleaf tag 질문합니다.
0
196
2
버전업하면서 deprecated된 것들이 너무많아요
0
478
1
spring security 패치 관련
0
437
1
모바일을 사용할때 토큰말고 세션
0
846
2
DB 연동한 인가 부분에 대한 질문입니다!
0
264
1
Ajax방식도 똑같이 Session방식을 사용하는건가요?
0
307
1
Config 파일 생성 시 질문이 있습니다.
0
225
1
강사님 몇일동안 구글 검색만 100개 했는데도 이유를 모르겠습니다..
1
429
2
403 에러 뜹니다.
0
813
2
login_proc의 존재에 대한 간략한 설명입니다
0
276
1
top.html에 로그인 링크를 만들어서 로그인을 해봤습니다
0
283
2
안녕하세요. DB에 저장될 때 이해 안 가는 값이 있어서 질문드립니다!
0
189
1





