解决shiro会话标识未更新问题
时间:2015-04-12 21:07:49
收藏:0
阅读:982
要解决会话标识未更新的安全问题,就需要在做登录验证时生成新的session,所以需要先将原来的session失效。
一般的解决方法如下:
public void login(HttpServletRequest request, ...){ // 让旧session失效 request.getSession(true).invalidate(); //登录验证 }
但是,如果使用了shiro框架,这样做会报错:...Session already invalidated。原因是shiro对HttpSession进行了一层包装,你直接让原生的session失效,没有通知shiro,shiro再去使用session时就会报错了。
解决方法,不要使用原生的失效方法,而是使用shiro自己提供的api方法:SecurityUtils.getSubject().logout();
public void login(String username,String password){ // 让旧session失效 SecurityUtils.getSubject().logout(); //登录验证 }
原文:http://blog.csdn.net/yycdaizi/article/details/45013397
评论(0)