我想知道,有没有办法在 Spring Security 中禁用记住我?我想要实现的场景很常见:关闭浏览器窗口后,我希望用户的会话过期。看起来很奇怪,但它不适用于 Tomcat 7 和 Spring Security 3.1。我们在 Spring Security 配置文件中使用了 auto-config,但是没有 remember-me 元素。
让它工作的最佳解决方案是什么?提前致谢!
更新这是澄清我的问题的使用场景:
- 用户登录到受限区域,例如 /secure.html
- 然后他关闭浏览器而不手动注销。
- 他再次打开浏览器并直接转到 /secure.html。
- 当前 Spring 的行为:页面显示成功。预期行为:重定向到登录页面。
鉴别诊断的新症状:用户很可能被重新认证,因为浏览器关闭/打开之间的 JSESSIONID 相同。如何让 Tomcat 或 Spring 为每个浏览器会话生成一个新会话?
Spring Security 配置的更新片段:
<http auto-config="true">
<anonymous key="anonymous-security" />
<intercept-url pattern="/auth/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/**" access="ROLE_ADMIN" />
<form-login login-page="/auth/login.html"
default-target-url="/auth/default.html"
authentication-failure-url="/auth/failed.html" />
<logout logout-success-url="/auth/logout.html" delete-cookies="JSESSIONID" />
</http>
更新文档声称自 3.0 以来 auto-config="true" 中没有默认的记住我配置(我们使用 3.1):
在 3.0 之前的版本中,此列表还包括记住我功能。这可能会导致某些配置出现一些令人困惑的错误,并已在 3.0 中删除。
我的网络应用有什么问题?