Spring/Security

[Security] AnonymouseFilter - Guest 유저를 위함

석석's 2021. 12. 28. 21:17

 

스프링 시큐리티 필터중에 AnonymouseFilter 라는 필터가 존재한다.

이 필터의 역활은 익명의 Guest 유저를 위한 인증 객체를 생성한다!!!...

 

보통 사용자 로그인 상태에 따라 세션영역에 user 객체를 넣어 view 단에서 session 안에 user가 NULL 인지 아닌지에 따라 로그인버튼을 로그아웃으로 바꾸고 특정메뉴를 숨기거나 보여주거나 했었다.

 

 

SecurityContextHolder에서 Authentication 객체를 꺼내와 null일 경우 인증 예외가 발생하게 되어있는 모습

스프링 시큐리티에서는 NULL 이라는 개념을 사용하면 안된다 

NULL을 사용하게 되면 시큐리티를 사용하는데 제약이 생긴다(곳곳에서 검증을 진행할 때 익셉션이 발생하게됨!!)

그래서 스프링 시큐리티를 사용할 때는 이런 익명객체를 만들어 인증처리는 일단 통과하게 한 후

Guest 유저에 대한 처리를 따로 해야한다.

 

 

스프링 시큐리티를 사용하여 이러한 처리를 하려면 익명객체를 이용하여

View 단에서 "isAnonymous()" 와 "isAuthenticated()" 로 표현해주면된다!!