Spring Security:能满足这些要求吗?无国籍?无会话?要么?
Posted
技术标签:
【中文标题】Spring Security:能满足这些要求吗?无国籍?无会话?要么?【英文标题】:Spring Security: can it meet these requirements? stateless? session-less? or? 【发布时间】:2014-01-04 16:20:38 【问题描述】:我正在构建一个基于 Spring 的 Web 应用程序,它需要身份验证。
在后端,我有一个服务器集群,它们的配置方式与运行此 Web 应用程序的方式相同。
以下是要求:
访问者通过 Spring Security 向网站进行身份验证
身份验证后,Web 应用程序(希望在 Spring Security 的帮助下)在用户的浏览器中设置一个 cookie。此 cookie 具有加密信息,Spring Security 可以识别并允许用户持续与 Web 应用程序交互,而无需进一步验证。
cookie 可以包含指示不活动时间长度的信息,这会使 cookie 无效。这可能意味着 Web 应用程序必须不断更新有关上次访问时间的 cookie。
用户的访问,经过身份验证后,可以被定向到任何服务器,而无需进一步的身份验证。不会有跨服务器的会话信息复制。
我发现了一些相关的 SO 帖子,如下所示:
Spring security stateless configuration
create-session stateless usage
How can I use Spring Security without sessions?
他们谈论无状态或无会话,一些帖子/cmets 对我来说似乎不是很清楚或矛盾(我可能是错的)。我试图从需求方面而不是技术术语提出问题。
那么问题来了:Spring Security(3.1.4 或更高版本)能否配置为满足上述要求?
如果提供任何 HOWTO 指针,那就太好了。
【问题讨论】:
可以,但您需要编写一个自定义身份验证提供程序来解释 cookie,并为相关 url 配置它。 【参考方案1】:你看过这些吗 - 我不确定你列表中的第 3 点,但其他的应该解决:
http://sleeplessinslc.blogspot.de/2012/02/spring-security-stateless-cookie-based.html https://blog.42.nl/articles/securing-stateless-web-service-with-spring-security-3-and-crowd/
【讨论】:
以上是关于Spring Security:能满足这些要求吗?无国籍?无会话?要么?的主要内容,如果未能解决你的问题,请参考以下文章
Spring security openId 支持和用户取消身份验证
如何在 Spring 获取之前捕获 Spring Security 登录表单?