본문 바로가기

카테고리 없음

[스프링 시큐리티] 기본 API & Filter 이해(6) 익명 사용자 인증 필터

 

익명사용자 인증 처리 필터이다.

익명 사용자와 인증 사용자를 구분해서 처리하기 위한 용도로 사용한다.

화면에서 인증 여부를 구현할 때 isAnonymous() 와 isAuthenticated() 로 구분해서 사용한다.

인증 객체를 세션에 저장하지 않는다.

존재 하는 이유는?

사용자가 인증을 받게 되면 세션에 유저 객체를 저장한다. 인증을 받지 못하면 null 로 처리한다.

이 사용자가 어떤 자원에 접근하려고 하면, 이 유저인증 객체가 존재하는 지 확인한다.

익명 사용자 인증 필터에서는 인증을 못 받아도 null 로 처리하지 않고 별도의 익명 사용자 객체를 만들어 처리한다.

 

  1. 사용자가 요청을 보낸다.
  2. anaoymousAuthenticationFilter 가 요청을 받는다.
  3. 이 사용자가 인증객체를 가지고 있는 지 판단한다.
  4. 존재한다면 다음 필터로 이동한다.
  5. 존재하지 않는다면, 인증을 거치지 않은 사용자로 판단하고 인증객체를 생성하여 시큐리티 컨텍스트에 저장한다.

즉, 시큐리티가 현재 사용자가 인증을 받지 않은 사용자인지 검사할 때, 시큐리티 컨텍스트에서 null 인지 판단하는 게아니라 익명인증객체를 확인한다.