gpt4 book ai didi

java - Shiro session 注销不起作用

转载 作者:行者123 更新时间:2023-11-30 03:52:11 26 4
gpt4 key购买 nike

我正在从事一个项目,我们使用 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 INFO [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.

这些都没有帮助,只要浏览器没有关闭, session 仍然处于 Activity 状态。当在注销页面上时,使用 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

最好,亨里克

最佳答案

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

关于java - Shiro session 注销不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24157455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com