- 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 |
댓글 영역