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教程:自定义数据库查询

Spring security openId 支持和用户取消身份验证

Spring Security 配置访问

如何在 Spring 获取之前捕获 Spring Security 登录表单?

有人可以解释 Spring Security BasePermission.Create 吗?

可以使用 Spring Security 实时加载自定义配置文件吗?