이 섹션을 끝내기 전에
시퀸스 흐름 (순서 흐름)에 대해 이야기를 나누어야 할 것 같습니다
우리의 AuthenticationProvider을 실행하려고 할 때마다
어떤 모습일지에 대해 이야기를 해야 합니다
보시다시피 Spring security Filters, AuthenticationManager
같은 모든 컴포넌트들이
각자의 역할을 진행할 것 입니다
우리는 그들에게 간섭하지 않을 것입니다
왜냐하면 Spring Security의 컴포넌트이기 때문입니다
내부의 컴포넌트들을 건드려서는 안 됩니다
하지만 우리가 AuthenticationManager이기 때문에
이번에는 자체적으로 AuthenticationProvider을
실행하게 되었습니다
이는 EazyBankUsernamePwdAuthenticationProvider
입니다
따라서 ProviderManager는
이 authenticate 메소드를
AuthenticationProvider 내로 주입시키려고 할 것입니다
그리고 AuthenticationProvider 내에서
모든 유저 세부 사항들을 불러온 후
PasswordEncoder를 활용하여
비밀번호가 일치하는지 확인할 것입니다
이 비즈니스 로직에 완벽하게 만족한다면
authentication에 대한 이 객체를
ProviderManager에게 되돌려 줄 것입니다
우리가 이전에 이야기를 나누었던 시퀸스 흐름(순서 흐름)과
비교했을 때 달랐던 점은
여기에서는 더 이상 UserDetailsService나
JWC UserDetailsManager 또는 사용자 상세 서비스나
UserDetailsManager의 구현 클래스를
활용하지 않습니다
왜냐하면 우리는 유저 상세 정보 검색 로직도
authentication 메소드 자체에 작성했기 때문입니다
모든 것이 확실하게 이해가 되셨으면 좋겠습니다
만약 시퀸스 흐름(순서 흐름)의 더욱 단순한 버전을 원한다면
이 슬라이드 또한 가지고 있습니다
보시다시피 이 시퀸스 흐름(순서 흐름)는
훨씬 더 단순해 보입니다
왜냐하면 UserDetailsService나 UserDetailsManager
실행 클래스에 더 이상 영향을 미치지 않기 때문입니다
이와 더불어 AuthenticationProviders나
자체적으로 제작한 AuthenticationProvider를 오버라이드하거나
정의내리는 부분에 대해 완벽하게 이해가 가셨으면 좋겠습니다
제가 공유하고자 하는 마지막 정보는
GitHub 리포지터리에 관한 것 입니다
여태까지 그랬던 것처럼 이 섹션과 코드는 관련이 깊습니다
섹션 5 와 관련된 폴더에 업로드 해두었습니다
이 폴더에 들어가면 이번 섹션에서 이야기를 나누었던
Maven 프로젝트를 찾아볼 수 있습니다
따라서 이 섹션에서 볼 수 있는 댓글들 또한
우리가 AuthenticationProvider를 자체적으로
실행하고 제작한 것입니다
또한 만약 질문이 더 있으시다면
본인의 코드와 이 GitHub 리포지터리에 제공되어있는
코드를 비교해보시기 바랍니다
다음 섹션에서 더 많은 논의를
이어가 보도록 합시다
다음 섹션에서부터 우리는
별도의 Angular 기반 UI 애플리케이션을 가져와
CSRF와 CORS 같은 흥미로운 Security 컨셉에 대해
이야기를 나누어보도록 하겠습니다
따라서 굉장히 흥미로운 논의가 될 것 같습니다
다음 강의 때 뵙겠습니다
수고하셨습니다