728x90
반응형
[스프링 시큐리티] 3. 기본 API 및 Filter 이해(익명사용자 인증 처리 - AnonymousAuthenticationFilter)
해당 포스팅은 인프런에서 스프링 시큐리티 정수원님의 강의를 참고하여 작성했습니다.
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의
초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과
www.inflearn.com
AnonymousAuthenticationFilter

우리가 로그인을 하지않고 웹사이트를 이용할 때, 특정 자원을 이용하려고 하면 로그인 페이지로 이동하는 것을 경험한적이 있을 것입니다.
스프링 시큐리티는 어떻게 이러한 과정을 처리할까요?
바로 AnonymousAuthenticationFilter
를 사용하여 처리를 하게되는데 AnonymousAuthenticationFilter
에 대해서 알아보기 전에 로그인과 서버 자원에 접근하는 과정을 살펴 봅시다.
로그인 과정
사용자는 서버의 자원을 이용하기 위해 먼저 로그인을 합니다.
로그인 과정을 다음과 같습니다.
- 사용자가 인증을 받습니다.
- 인증을 받으면 해당
Session
을User
객체에 저장합니다.
서버 자원 접근 과정
이제 로그인을 한 사용자가 서버의 자원에 접근하려고 합니다.
Session
에서User
객체가 존재하는지 검사 합니다.- 여기서 만약
User
객체가 존재하지 않으면 인증받은 사용자가 아니라고 판단하고, 자원에 접근하지 못하게 합니다. User
객체가 존재하면 인증받은 사용자라고 판단하여, 자원에 접근 할 수 있게 합니다.
익명사용자 인증 처리 필터
위 개념은 AnonymousAuthenticationFilter
에서도 동일하게 적용됩니다.
하지만, User
객체에 null
로 저장하는 것이 아닌 별도의 익명 사용자용 인증 객체를 만들어서 처리합니다.
익명사용자 인증 처리 필터 과정

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