Shiro 会话注销不起作用
Posted
技术标签:
【中文标题】Shiro 会话注销不起作用【英文标题】:Shiro Session logout not working 【发布时间】:2014-08-01 04:30:28 【问题描述】:我正在一个项目中工作,我们使用 Apache Shiro 来确保安全。 现在,我不确定问题出在 Shrio 配置中还是其他地方。
发生的情况是,当用户输入凭据并使用基本身份验证进行身份验证时,用户名和密码的值将保留到浏览器关闭为止。我已经在 Firefox 和 Chrome 中尝试过,并且行为相同。
据我了解,这听起来像是 Shiro 的“RememberMe”功能,但我“认为”我已将其关闭。
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException
UsernamePasswordToken upToken = (UsernamePasswordToken) token;
logger.info("Remember Me active ? ", upToken.isRememberMe());
打印: 09:44:00,323 信息 [TestRealm] 还记得我吗?假的
我也尝试过使用 shiro.ini 文件中配置的 Shiro 注销
[main]
...
logout.redirectUrl = /logout.jsp
...
[url]
/logout = logout
logout.jsp 如下所示:
<%@ page import="org.apache.shiro.SecurityUtils" %>
<% SecurityUtils.getSubject().logout();%>
You have succesfully logged out.
这无济于事,只要浏览器未关闭,会话仍处于活动状态。在退出页面时,使用 Chrome-developer,我可以看到资源中的 cookie 已被删除。
shiro.ini 完整文件
[main]
authBasicRealm = se.test.TestRealm
securityManager.realms = $authBasicRealm
#builtInCacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
#securityManager.cacheManager = $builtInCacheManager
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
#securityManager.sessionManager.sessionIdCookieEnabled = false
# cookie for single sign on
cookie = org.apache.shiro.web.servlet.SimpleCookie
cookie.name = test.session
cookie.path = /test
cookie.maxAge = 60
#cookie.secure = true
cookie.httpOnly = false
sessionManager.sessionIdCookie = $cookie
sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
sessionManager.sessionDAO = $sessionDAO
securityManager.sessionManager = $sessionManager
logout.redirectUrl = /logout.jsp
[users]
# format: username = password, role1, role2, ..., roleN
admin = admin, 4
user = user, 2
[roles]
admin = *
user = *
#User Get Specified
1 = 1
#User Get All
2 = 1
#Create Put Update
3 = 2:*
#Admin
4 = admin:*
test = 2:*
[urls]
/logout = logout
/** = authcBasic
最好, 亨里克
【问题讨论】:
【参考方案1】:配置中一定有问题,您可以尝试https://github.com/dominicfarr/skybird-shiro 的演示应用程序并检查它是否有效。
【讨论】:
以上是关于Shiro 会话注销不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter - 注销链接不起作用 - 会话和 cookie 未销毁