inflearn logo
강의

Course

Instructor

Spring Security

7) Authentication Manager: AuthenticationManager

ProviderManager가 부모용이 따로 있는 이유가 있을까요?

427

kiybigs

14 asked

5

안녕하세요.

ProviderManager가 부모용이 따로 있는 이유가 있을까요?

어짜피 AuthenticationProvider가 List라 DaoAuthenticationProvider, AnonymousAuthenticationProvider 둘다 가지고 있어도 될거 같은데요.

스프링이 아무이유없이 저렇게 하진 않았을거 같은데 혹시 제가 모르는 어떤 이유가 있을까요?

그리고 ProviderManager가 하나가 아니고 여러개인 경우는 어떤 경우인가요?

이것 역시 AuthenticationProvider 가 List라 딲히 여러개일 필요가 없어 보이는데 미약한 저의 실력으론 딱히 떠오르지 않네요.

주말 잘보내시고 좋은 강좌 감사합니다.

spring-boot java Spring Security

Answer 1

6

leaven

네 

말씀하신 것처럼 ProviderManager 가 parent 가 있는 것과 여러개의 ProviderManager 를 생성할 수 있는 기능을 제공하는 것 자체가 중요한 이유가 있는 것은 아닙니다. 

일반적으로 인증을 수행하게 되면 ProviderManager 의  실행 이후 AuthenticatonProvider 로 부터 최종 인증 결과를 받게 되지만 만약 인증결과가 null 로 받을 경우 혹시 parent 에 있는 AuthenticatonProvider 에게 인증을 위임해서 확인해 보자는 차원이지 거창한 이유로 한 것은 아닙니다.

이런 패턴은 다른 기술에서도 유사하게 볼 수 있습니다.

대부분은 기본 기능 안에서 처리되지만 그렇지 못한 경우 부모에게까지 거슬러 올라가서 처리를 맡겨 보자는 의미라고 볼 수 있습니다.

그리고 여러개의 ProviderManager 를 생성해서 인증을 처리할 수도 있는데 거의 사용할 일이 없을 것 같습니다.

다만 간혹 여러개의 인증 방식을 동시에 사용해야 할 경우, 예를 들면 Form 인증방식과 Rest 인증방식을 병렬적으로 적용해야 하는 경우 인증방식마다 ProviderManager 를 별도로 생성해서 관리할 수 있지만 굳이 그렇게 할 이유는 없습니다
하나의 ProviderManager 로도 처리가 가능하기 때문입니다.

시큐리티 공부 버전 질문

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