在春季安全或角度注销时清除cookie
Posted
技术标签:
【中文标题】在春季安全或角度注销时清除cookie【英文标题】:clear cookies while logout in spring security or in angular 【发布时间】:2016-09-09 21:21:18 【问题描述】:我的删除 cookie 的试用代码
.logout()
.logoutUrl("/access/logout")
.logoutSuccessHandler(new LogoutSuccessHandler()
@Override
public void onLogoutSuccess(
HttpServletRequest request,
HttpServletResponse response,
Authentication a) throws IOException, ServletException
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
)
.deleteCookies("JSESSIONID")
.invalidateHttpSession(true)
这是HttpSecurity
的注销安全代码
在这里我遇到了删除 cookie 的问题
在 logoutSuccessHandler
在记录器中它显示 cookies = 1 并且即 JESSESIONID
所以我的问题是如何在注销时删除 cookie
或者如果有任何其他方式或任何角度的方式那么请告诉我
【问题讨论】:
使http会话失效就足够了。在此之后 JSESSION_ID 不再有效。我你真的想删除它,你可能想在客户端使用 $cookies 角度服务,但只有在服务器端取消会话之后 好的,如果我想在 angularJs 端清除它,我应该怎么做 贴出注销涉及的ng代码。 【参考方案1】:在浏览了很多关于spring security的博客后,我得到了答案,
.invalidateHttpSession(true)
:- 用于清除我们的会话
和.deleteCookies("JSESSIONID")
:- 用于删除 cookie
在成功处理程序之后使用它,以便在注销后删除所有 cookie
编辑
如果有人想从前端处理 cookie,那么您可以在 AngularJs 中使用 ng-cookies
处理它。
【讨论】:
以上是关于在春季安全或角度注销时清除cookie的主要内容,如果未能解决你的问题,请参考以下文章