[SPRING] 스프링 보안 : 'remember me'쿠키를 프로그래밍 방식으로 지우는 법?
SPRING스프링 보안 : 'remember me'쿠키를 프로그래밍 방식으로 지우는 법?
아래처럼 web-app에서 logout 메서드를 사용하고 있습니다. 그러나 쿠키가 지워지지 않아 로그 아웃이 작동하지 않습니다. 방법으로이 쿠키를 프로그래밍 방식으로 제거하는 방법 (또는 더 나은 로그 아웃 방법을 만드는 방법)
public void logout() {
AnonymousAuthenticationToken anonymous = new AnonymousAuthenticationToken("anonymous", "anonymous", new ArrayList(Arrays.asList(new GrantedAuthorityImpl("ROLE_ANONYMOUS"))));
SecurityContextHolder.getContext().setAuthentication(anonymous);
}
해결법
-
==============================
1.표준 스프링 보안 쿠키 이름 (SPRING_SECURITY_REMEMBER_ME_COOKIE)을 사용하는 경우 다음과 같이 할 수 있습니다.
표준 스프링 보안 쿠키 이름 (SPRING_SECURITY_REMEMBER_ME_COOKIE)을 사용하는 경우 다음과 같이 할 수 있습니다.
void cancelCookie(HttpServletRequest request, HttpServletResponse response) { String cookieName = "SPRING_SECURITY_REMEMBER_ME_COOKIE"; Cookie cookie = new Cookie(cookieName, null); cookie.setMaxAge(0); cookie.setPath(StringUtils.hasLength(request.getContextPath()) ? request.getContextPath() : "/"); response.addCookie(cookie); }
사용자 정의 쿠키 이름을 사용하는 경우 cookieName 값을 변경해야합니다.
-
==============================
2.AbstractRememberMeServices 클래스에는 쿠키를 취소하는 LogoutHandler.logout 구현이 있습니다. LogoutHandler를 주입하고이 메소드를 호출하십시오.
AbstractRememberMeServices 클래스에는 쿠키를 취소하는 LogoutHandler.logout 구현이 있습니다. LogoutHandler를 주입하고이 메소드를 호출하십시오.
from https://stackoverflow.com/questions/6265490/spring-security-how-to-clear-remember-me-cookie-programmatically by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 Oauth2.0 누락 교부 유형 (0) | 2019.05.08 |
---|---|
[SPRING] Resteasy Bean 유효성 검사가 호출되지 않음 (0) | 2019.05.08 |
[SPRING] Swagger UI와 ApiResponses 주석을 Java Spring 엔드 포인트와 함께 사용할 때 DRY하는 방법은 무엇입니까? (0) | 2019.05.08 |
[SPRING] Spring-Boot에서 production.properties를 오버라이드하는 법? (0) | 2019.05.08 |
[SPRING] JsonMappingException : java.lang.Integer의 인스턴스를 START_OBJECT 토큰에서 deserialize 할 수 없습니다. (0) | 2019.05.07 |