|
|
|
@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.security.core.Authentication; |
|
|
|
import org.springframework.security.core.Authentication; |
|
|
|
import org.springframework.util.Assert; |
|
|
|
import org.springframework.util.Assert; |
|
|
|
|
|
|
|
import org.springframework.util.StringUtils; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* A logout handler which clears a defined list of cookies, using the context path as the |
|
|
|
* A logout handler which clears a defined list of cookies, using the context path as the |
|
|
|
@ -26,7 +27,11 @@ public final class CookieClearingLogoutHandler implements LogoutHandler { |
|
|
|
public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { |
|
|
|
public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { |
|
|
|
for (String cookieName : cookiesToClear) { |
|
|
|
for (String cookieName : cookiesToClear) { |
|
|
|
Cookie cookie = new Cookie(cookieName, null); |
|
|
|
Cookie cookie = new Cookie(cookieName, null); |
|
|
|
cookie.setPath(request.getContextPath()); |
|
|
|
String cookiePath = request.getContextPath(); |
|
|
|
|
|
|
|
if(!StringUtils.hasLength(cookiePath)) { |
|
|
|
|
|
|
|
cookiePath = "/"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
cookie.setPath(cookiePath); |
|
|
|
cookie.setMaxAge(0); |
|
|
|
cookie.setMaxAge(0); |
|
|
|
response.addCookie(cookie); |
|
|
|
response.addCookie(cookie); |
|
|
|
} |
|
|
|
} |
|
|
|
|