Spring/Spring Security

Spring Security (6) - LogoutFilter

역할

  • 로그아웃에 대한 처리를 담당하는 필터입니다.
  • 로그아웃 요청이 들어온 경우에만 적용되는 필터입니다. => 로그아웃일 경우에만 뭔가를 실행

LogoutHandler

  • 로그아웃시 필요한 처리를 합니다
  • Composite 패턴으로 여러 핸들러를 중첩으로 사용할 수 있도록 합니다.
    • CompositeLogoutHandler 가 해당 패턴을 사용할 수 있도록 하는 헬퍼클래스입니다.
  • CsrfLogoutHandler, SecurityContextLogoutHandler 가 기본으로 등록되는 핸들러입니다.

LogoutSuccessHandler

  • 로그아웃 후의 처리를 합니다.
  • SimpleUrlLogoutSuccessHandler 를 기본으로 사용합니다.

logout options

  • 다양한 옵션으로 로그아웃 처리를 할 수 있습니다.
    @Configuration
    @EnableWebSecurity
    @RequiredArgsConstructor
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
      @Override
      protected void configure(HttpSecurity http) throws Exception {
          http.logout()
              .logoutUrl("/logout")
              .logoutSuccessUrl("/")
              .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
              .invalidateHttpSession(true)
              .deleteCookies("JSESSIONID")
              .addLogoutHandler(handler)
              .logoutSuccessHandler(handler);
      }
    }