我正在使用 Spring Framework 3.0.5 和 Spring Security 3.0.5 开发一个 web 应用程序,用户可以在其中登录和注销,如果他们愿意,可以使用 Remember-Me-Service。
由于我没有太多经验,我想知道它是否正常工作。我使用 PersistentTokenApproach(使用我自己的实现,因为我使用 Hibernate。)我可以看到 cookie 是在登录时创建并在注销时删除的。如果我有一个有效的 Remember-Me-Cookie 并关闭浏览器,当我再次打开浏览器时,我会再次成功登录。到现在为止还挺好。
现在,我只想知道我注意到的那些事情是否按预期工作,或者我是否确实犯了错误。
1)当用户在没有记住我的情况下登录并且浏览器选项卡关闭(不是浏览器本身)时,在重新打开新的浏览器选项卡时,他仍然经过身份验证(他使用相同的 JSESSIONID)。关闭浏览器并再次重新打开时,他不再经过身份验证。关于 Web 应用程序的安全性,这是推荐的(“正常”)行为吗?
2)当使用 remember-me 并且用户成功认证(通过登录或稍后通过 cookie)时,不再对 cookie 进行检查。这意味着,如果同时用户在线,我会从数据库中删除 cookie,用户仍然会登录,甚至可以观看受保护的页面。我猜这是因为他之前已经过身份验证并且一直使用相同的 SESSIONID。当我关闭浏览器并重新打开它时,他不再经过身份验证。
3)当我没有cookie并打开主页时,对于我发送的每个请求(页面上的每张图片,每个文件),服务器都会检查rememberme-cookie。那是对的吗?
对不起新手问题,但我只是想确保一切正常。:-) 提前致谢!