0+ 스프링/0+ 스프링 Security

[스프링 시큐리티] 3. 기본 API 및 Filter 이해(익명사용자 인증 처리 - AnonymousAuthenticationFilter)

힘들면힘을내는쿼카 2023. 1. 1. 16:50
728x90
반응형

[스프링 시큐리티] 3. 기본 API 및 Filter 이해(익명사용자 인증 처리 - AnonymousAuthenticationFilter)

해당 포스팅은 인프런에서 스프링 시큐리티 정수원님의 강의를 참고하여 작성했습니다.
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의

 

스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의

초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과

www.inflearn.com

AnonymousAuthenticationFilter

이말년 시리즈

 

우리가 로그인을 하지않고 웹사이트를 이용할 때, 특정 자원을 이용하려고 하면 로그인 페이지로 이동하는 것을 경험한적이 있을 것입니다.
스프링 시큐리티는 어떻게 이러한 과정을 처리할까요?

바로 AnonymousAuthenticationFilter를 사용하여 처리를 하게되는데 AnonymousAuthenticationFilter에 대해서 알아보기 전에 로그인과 서버 자원에 접근하는 과정을 살펴 봅시다.

로그인 과정

사용자는 서버의 자원을 이용하기 위해 먼저 로그인을 합니다.
로그인 과정을 다음과 같습니다.

  1. 사용자가 인증을 받습니다.
  2. 인증을 받으면 해당 SessionUser객체에 저장합니다.

서버 자원 접근 과정

이제 로그인을 한 사용자가 서버의 자원에 접근하려고 합니다.

  1. Session에서 User객체가 존재하는지 검사 합니다.
  2. 여기서 만약 User 객체가 존재하지 않으면 인증받은 사용자가 아니라고 판단하고, 자원에 접근하지 못하게 합니다.
  3. User 객체가 존재하면 인증받은 사용자라고 판단하여, 자원에 접근 할 수 있게 합니다.

익명사용자 인증 처리 필터

위 개념은 AnonymousAuthenticationFilter에서도 동일하게 적용됩니다.
하지만, User객체에 null로 저장하는 것이 아닌 별도의 익명 사용자용 인증 객체를 만들어서 처리합니다.

익명사용자 인증 처리 필터 과정

  • 익명 사용자 인증 처리 필터
  • 익명 사용자와 인증 사용자를 구분해서 처리하기 위한 용도로 사용
  • 화면에서 인증 여부를 구현할 때 isAnonymous()isAuthenticatied()로 구분해서 사용
    • isAnonymous()ture이면 로그인 또는 회원가입을 유도
    • isAuthenticatied()ture이면 로그아웃 버튼 활성화
  • 인증객체를 세션에 저장하지 않음
    • 익명 사용자가 인증객체를 갖고 있어도 로그인을 통해 인증을 받은 사용자는 아니기 때문에 세션에 저장할 필요가 없음

 

 

728x90
반응형