4

我了解Spring SecurityHttpSessionSecurityContextRepository使用.HttpSession

此外,我读过 CloudFoundry 等 PaaS 出于可扩展性的目的而尝试避免会话复制。

我打算将应用程序部署到CloudFoundry PaaS

HttpSessionSecurityContextRepository在CF上使用有问题吗?

4

1 回答 1

2

CloudFoundry 文档只是说 HTTP 会话默认情况下不会跨实例复制。这意味着部署在多个实例上的应用程序将无法默认使用任何类型的 HTTP 会话集群。HTTP 会话变得粘性,即同一会话中的所有 HTTP 请求都将被路由到该请求的会话所在的实例。如果实例失败,在该实例上具有活动会话的用户将被迁移到其他实例,但他们将丢失会话信息,这意味着他们将不得不再次登录。

这并不意味着在这样的环境中使用 Spring Security 是不安全的。Spring Security 的语义将与没有它的语义相同。用户登录后,他们将继续访问创建会话的 CloudFoundry 实例。如果该实例崩溃,它们将自动移植到另一个实例,但必须再次登录。

如果默认设置(没有会话复制)是一个问题,当然可以跨实例共享会话。CloudFoundry 论坛列出了实现此目的的两种方法——通过 Redis使用 JDBC。也可以使用 CloudFoundry 服务之一来实现您自己的解决方案。

于 2014-02-12T08:07:44.180 回答