【问题标题】:Shiro Session logout not workingShiro 会话注销不起作用
【发布时间】: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

最好, 亨里克

【问题讨论】:

    标签: java session jboss shiro


    【解决方案1】:

    配置中一定有问题,您可以尝试https://github.com/dominicfarr/skybird-shiro 的演示应用程序并检查它是否有效。

    【讨论】:

      猜你喜欢
      • 2020-04-27
      • 2021-07-14
      • 2020-07-08
      • 2018-05-31
      • 1970-01-01
      • 2013-10-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多