스프링 시큐리티

Ch01. 스프링 시큐리티 기본 API 및 Filter 이해 - Logout 처리, LogoutFilter

webmaster 2022. 1. 13. 10:32
728x90

Logout 과정

http
        .logout()
        .logoutUrl("/logout") //logout은 기본적으로 post로 처리해준다.
        .logoutSuccessUrl("/login") //로그아웃 성공시 해당 url 이동
        .addLogoutHandler(new LogoutHandler() {
            @Override
            public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
                HttpSession session = request.getSession();
                session.invalidate();
            }
        }) //로그아웃 후속동작을 시킬수 있다
        .logoutSuccessHandler(
                new LogoutSuccessHandler() {
                    @Override
                    public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
                        response.sendRedirect("/login");
                    }
                }
        ) //로그아웃 성공 후속동작을 동작 시킬수 있다.,
        .deleteCookies("remember-me") //삭제할 쿠키 지정
;
  • logoutUrl : 기본적으로 Post로 처리를 해주어야 하며, logout시 이동해야 될 url을 적는다.
    • logOut form이 post 방식으로 동작시킴을 확인
  • logoutSuccessUrl : 로그아웃 성공시 해당 URL로 이동
  • addLogoutHandler : 로그아웃 동작시에 추가적으로 동작시킬 작업을 명시
  • logoutSuccessHandler : 로그아웃 성공 시에 추가적으로 동작시킬 작업을 명시
  • deleteCookies : 삭제할 쿠키를 지정

동작 과정
logoutFilter의 doFilter

728x90