[Spring Security] AnonymousAuthenticationFilter
2024. 1. 4. 16:26ㆍ백엔드/Spring Boot
# AnonymousAuthenticationFilter
- 익명 사용자에 대한 인증을 처리하는 필터이다. (`익명 사용자` 란 아직 로그인하지 않은 유저, 유효한 인증토큰이 아닌 유저를 의미)
- 익명 사용자와 인증 사용자를 구분해서 처리하기 위한 용도로 사용된다.
- `익명 사용자`는 로그인이 가능한 경로를 통해 인증허가를 을 받게 될 경우, 일반 사용자로 등극하여, 로그인 접속 및 향후 접속유지가 가능하게된다.
- 인증을 받지 못한 사용자는 `익명 사용자`로 분류되어 익명사용자 인증 토큰이 익명 사용자 관리 명목으로 생성되지만 로그인과 관련된 접근 권한은 받지 못하고 세션도 생성되지 않고 로그인 페이지로 리다이렉트 시킨다.
- 화면에서 인증 여부를 구현할 때 isAnonymous() 와 isAuthenticated() 로 구분해서 사용한다.
로그인 : isAnonymous() , 로그아웃 : isAuthenticated()
# 익명 사용자 검사 시 객체 == null 로 검사하지 않는 이유
스프링 시큐리티에서 인증받지 않은 상태를 판별하는 기준은 user 객체의 존재 여부가 아니기 때문이다.
user 객체 정보가가 null 이라 할지라도 Authentication 이 null 이 아니면 인증 받은 것으로 간주하기 때문이다.
익명 사용자 여부를 검사하는 코드
if (SecurityContextHolder.getContext().getAuthentication() == null) {
// 익명의 사용자 처리
}
Reference
2. 인프런 '스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security' - 정수원
'백엔드 > Spring Boot' 카테고리의 다른 글
디자인 패턴과 SOLID 원칙 (3) | 2024.01.09 |
---|---|
[Spring Security] 세션 제어하기 (0) | 2024.01.04 |
[Spring Security] Remember Me 구현하기 (0) | 2024.01.04 |
[Spring Security] Logout 구현하기 (1) | 2024.01.04 |
[Spring Security] Form Login 구현하기 (2) | 2024.01.04 |