在CloudFoundry上使用Spring Security的HttpSessionSecurityContextRepository是否存在问题?

时间:2013-09-05 15:26:22

标签: spring-security cloudfoundry httpsession session-replication

我了解 Spring Security HttpSessionSecurityContextRepository使用HttpSession

此外,我已经读过像CloudFoundry这样的PaaS试图为了可扩展性而避免会话复制。

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

在CF上使用HttpSessionSecurityContextRepository是否有问题?

1 个答案:

答案 0 :(得分:2)

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

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

如果需要考虑默认设置(没有会话复制),则可以跨实例共享会话。 CloudFoundry论坛列出了实现此目标的两种方法 - via Redisusing JDBC。也可以使用CloudFoundry服务之一实现您自己的解决方案。