👣 개요
Spring Security를 다루면서 들었던 의문점들을 해소하고자
해당 게시물을 작성하게 되었다.
해당 게시물에서는 인증 과정에서 일어나는 과정들을 상세히 다루고자 하며
Spring Security 내에서 일어나는 이벤트들에 중점적으로 다루며
코드 분석 중심으로 작성한다.
👣 Architecture
인증 과정 순서는 그림에 명시되어 있어서 설명은 생략한다.
👣 UserDetailsService 구현은 항상 요구되는 것인가?
UserDetailsService 구현은 항상 요구되는 것인가?
👣 개요 나의 의문점은 UserDetailsService와 UserDetails 인터페이스는 모든 AuthenticationProvider에서 요구하냐는 것이었다. 때문에 관련 질문을 ChatGPT에게 물어봤다. 물론 답변은 이렇게 나왔으나 ChatGPT는
ikadnorth.tistory.com
결론 :
항상 요구하는 것은 아니다. DaoAuthenticationProvider만 UserDetailsService를 요구한다고 볼 수 있다.
👣 AuthenticationProvider를 내 맘대로 커스터마이징할 수 있을까?
AuthenticationProvider를 내 맘대로 커스터마이징할 수 있을까?
👣 개요 결국 UserDetailsService를 사용하고 싶지 않아도 UsernamePasswordAuthenticationToken을 사용한다면 어쩔 수 없이 UserDetailsService를 사용해야 한다는 것이다. 만약 JWT에 Username을 넣으면 안 된다거나 Id
ikadnorth.tistory.com
결론 :
기존에 있던 UsernamePasswordAuthenticationToken을 상속한 새로운 Authentication 객체를 사용하면 AuthenticationProvider를 커스터마이징할 수 있다. 하지만 굳이? 라는 생각이 든다.
차라리 Filter를 새로 하나 확장해서 커스터마이징 하는 것이 맘편할 수 있다.
👣 인증 필터는 어떻게 재정의할 수 있을까?
인증 필터는 어떻게 재정의할 수 있을까?
👣 인증 필터의 업무 파악 우선 인증 필터가 수행해야 하는 업무를 나열하면 다음과 같다. 인증 전 AuthenticationToken을 만들기 해당 Authentication Token을 AuthenticationManager에게 위임해서 인증된 Authentic
ikadnorth.tistory.com
결론 :
Filter를 상속해서 밑바닥부터 커스터마이징할 수도 있지만
AbstractAuthenticationProcessingFilter를 상속하면
단순히 인증 과정에만 관여할 수 있기 때문에 난이도가 급하강한다.
'Spring Security' 카테고리의 다른 글
Spring Security Configuration 실험 (0) | 2023.09.30 |
---|---|
인증 필터는 어떻게 재정의할 수 있을까? (0) | 2023.09.01 |
AuthenticationProvider를 내 맘대로 커스터마이징할 수 있을까? (0) | 2023.09.01 |
UserDetailsService 구현은 항상 요구되는 것인가? (0) | 2023.09.01 |