
- Client 👉🏾 Server : request(/logout)- Server 👉🏾 Client:
☝🏿. LoginFilter
✌🏿. AntPathRequestMatcher("/logout")
🤟🏿. Authentication이 SecutiryContext로 부터 인증된 객체를 꺼내온다.
🐍(巳(뱀 사). SecutiryContextLogoutFilter 작동
✋. SimpleUrlLogoutSuccessHandlerFilter로 login 페이지로 이동
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .logout()
                .logoutUrl("/logout")   // default : /logout
                .logoutSuccessUrl("/login") // login 성공 후 이동 페이지
                .addLogoutHandler(new LogoutHandler() { // 로그아웃 핸들러 설정, 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")	// 쿠키 삭제
                ;
    }
}| 🌱👮🏿♀️Spring Security (4) - RememberMe 인증 (1) | 2022.05.24 | 
|---|---|
| 🌱👮🏿♀️Spring Security (2) - Login Form 인증, FormLoginFilter 동작 순서 (0) | 2022.05.23 | 
| 🌱👮🏿♀️Spring Security (1) - 스프링 시큐리티 시작하기 (0) | 2022.05.23 | 
댓글 영역