728x90
반응형
[스프링 시큐리티] 3. 기본 API 및 Filter 이해(익명사용자 인증 처리 - AnonymousAuthenticationFilter)
해당 포스팅은 인프런에서 스프링 시큐리티 정수원님의 강의를 참고하여 작성했습니다.
스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의
AnonymousAuthenticationFilter
우리가 로그인을 하지않고 웹사이트를 이용할 때, 특정 자원을 이용하려고 하면 로그인 페이지로 이동하는 것을 경험한적이 있을 것입니다.
스프링 시큐리티는 어떻게 이러한 과정을 처리할까요?
바로 AnonymousAuthenticationFilter
를 사용하여 처리를 하게되는데 AnonymousAuthenticationFilter
에 대해서 알아보기 전에 로그인과 서버 자원에 접근하는 과정을 살펴 봅시다.
로그인 과정
사용자는 서버의 자원을 이용하기 위해 먼저 로그인을 합니다.
로그인 과정을 다음과 같습니다.
- 사용자가 인증을 받습니다.
- 인증을 받으면 해당
Session
을User
객체에 저장합니다.
서버 자원 접근 과정
이제 로그인을 한 사용자가 서버의 자원에 접근하려고 합니다.
Session
에서User
객체가 존재하는지 검사 합니다.- 여기서 만약
User
객체가 존재하지 않으면 인증받은 사용자가 아니라고 판단하고, 자원에 접근하지 못하게 합니다. User
객체가 존재하면 인증받은 사용자라고 판단하여, 자원에 접근 할 수 있게 합니다.
익명사용자 인증 처리 필터
위 개념은 AnonymousAuthenticationFilter
에서도 동일하게 적용됩니다.
하지만, User
객체에 null
로 저장하는 것이 아닌 별도의 익명 사용자용 인증 객체를 만들어서 처리합니다.
익명사용자 인증 처리 필터 과정
- 익명 사용자 인증 처리 필터
- 익명 사용자와 인증 사용자를 구분해서 처리하기 위한 용도로 사용
- 화면에서 인증 여부를 구현할 때
isAnonymous()
와isAuthenticatied()
로 구분해서 사용isAnonymous()
가ture
이면 로그인 또는 회원가입을 유도isAuthenticatied()
가ture
이면 로그아웃 버튼 활성화
- 인증객체를 세션에 저장하지 않음
- 익명 사용자가 인증객체를 갖고 있어도 로그인을 통해 인증을 받은 사용자는 아니기 때문에 세션에 저장할 필요가 없음
728x90
반응형