//系统用户注销
public String logout(){
try {
Subject currentUser=SecurityUtils.getSubject();
currentUser.logout();
response.sendRedirect("/admin/login.jsp");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
当你调用logout,任何现有的Session 都将会失效,而且任何身份都将会失去关联(例如,在Web 应用程序中,RememberMe cookie 也将被删除)。在Subject 注销后,该Subject 的实例被再次认为是匿名的。
由于在Web 应用程序记住身份往往是依靠Cookies,然而Cookies 只能在Response 被committed 之前被删除,所以强烈建议在调用subject.logout()后立即将终端用户重定向到一个新的视图或页面。这样能够保证任何与安全相关的Cookies都能像预期的一样被删除。这是HTTP cookies 的功能限制,而不是Shiro的问题。