【问题标题】:Distributed Session for Spring SecuritySpring Security 的分布式会话
【发布时间】:2013-11-14 12:03:08
【问题描述】:

配置 Spring Security Java 以提供数据库存储会话实现所需的最少步骤是什么。基本上我想将 Session ID 与 Cookies 和基于 JDBC 的会话实现一起使用。似乎我必须实现一个自定义会话注册表,但不能确定我需要额外的实现来提供基于数据库的会话实现。

(我正在使用 Spring Security RC2)

【问题讨论】:

  • 这与 Spring Security 有什么关系?这取决于您的 servlet 容器,而不是 Spring Security。 Spring Security 中的SessionRegistry 与分布式会话具有完全不同的含义和用例。
  • 我认为 Spring Security 将负责会话管理和安全性。我的理解似乎有一个根本性的错误。我错了吗?
  • 正确... Spring 不管理作为 Servlet 容器任务的会话(因为它是规范的一部分),通常可以找到如何更改它的持续方式在文档中。 Spring 中的 SessionRegistry 用于支持并发会话管理,与存储状态无关。
  • 感谢您的澄清。你不觉得这是一种增强吗?因为所有框架都不依赖于 Servlet 规范,例如独立应用程序。
  • 额外提供的 SecurityContextRepository 实现被安排为 Spring Security 4 的一部分。见jira.springsource.org/browse/SEC-2346

标签: spring spring-security


【解决方案1】:

我已经使用 Spring Security 和 MongoDB 实现了RESTfull distributive system。 这里是filtersconfigservice

请随意分叉和推送。

【讨论】:

  • 如果您使用 Jersey Security - 您可以覆盖 Session Repository 并使用 Hazelcast 或 Mongo(Hazelcast 会运行得更快)。
【解决方案2】:

Rob Winch 和 M. Deinum 澄清了我的问题,并解释说目前这在 Spring 中是不可能的。但是有an issue 与我的问题相关。我决定使用 Servlet API 和容器会话管理。

Rob Winch 目前正在实施一个Spring Session 项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 2014-09-22
    • 2016-12-05
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2018-09-27
    • 2016-08-03
    相关资源
    最近更新 更多