Skip to main content Link Search Menu Expand Document (external link) Copy Copied

필터

필터는 한 개가 아니라 여러 개가 체인처럼 연결되어 있다.
Spring Bean으로 등록된 필터는 @Order 어노테이션이나 Ordered 인터페이스를 구현하여 필터의 순서를 지정할 수 있다.

  • @Slf4j(topic = "LoggingFilter"): 필터에 별칭을 지정한다.
  • @Order(1): 필터의 순서를 지정한다.
  • chain.doFilter(request, response);: 요청과 응답을 다음 필터로 전달한다.

Spring Security 프레임워크

Spring에서는 모든 요청이 DispatcherServlet을 통과한 후 각 요청을 처리할 컨트롤러로 전달된다.
이때 모든 요청에 대해 공통적으로 처리해야 할 작업이 필요할 경우 DispatcherServlet 이전에 필터 단계가 사용된다.
Spring Security는 FilterChainProxy를 통해 보안 관련 로직을 구현한다.


SecurityContextHolder

SecurityContextHolder는 보안 정보를 저장하고 관리하는 객체이며, 그 내부에는 SecurityContextAuthentication 객체가 있다.

Authentication: 사용자 인증 정보를 나타낸다.

  • principal: 사용자를 식별하는 정보
  • credentials: 주로 비밀번호와 같은 인증 정보
  • authorities: 사용자에게 부여된 권한, GrantedAuthority 객체로 표현된다.

실습자료

GitHub