分布式spring应用程序中的认证和会话管理

时间:2015-03-11 23:16:37

标签: spring spring-security jms cas shiro

我正在努力将单个模块spring Web应用程序迁移到基于JMS的模块化体系结构中。这个link现在具有应用程序的结构和我的目标。

我将使用基于CAS的SSO服务器进行身份验证。技术堆栈将是spring-boot,Apache Camel,ActiveMQ和spring-security / apache-shiro。

例如我将有一个库存应用程序,财务应用程序和CAS应用程序(SSO服务器)。在某些地方,我必须管理一个集中的会话存储,它将保存当前的用户ID和他们的首选项。

用例:

  1. 用户登录CAS SSO并转到库存模块。库存模块将获取当前用户ID及其首选项(来自中央会话存储?),并启动销售交易。
  2. 在库存完成后,它会通过Apache Camel向财务部门发送一条JMS消息,用于过帐会计分录。
  3. 财务应用程序获取当前用户ID和首选项 会话并完成帐户发布。
  4. 如何为上述场景创建一个公共会话存储(几乎附加到SSO服务器)(Spring-Session将有帮助?)以及使每个应用程序知道谁是实际用户进行此事务的方法是什么。< / p>

1 个答案:

答案 0 :(得分:2)

好的,这是一个没有答案的旧问题,请查看春季会议,这正是what it's designed for

截至今天,最常见的会话商店是Redis,但它也支持其他商店,例如,我使用Hazelcast。

此外,使用CAS只会影响Spring Security,因此与用于验证用户管理会话的方式无关。

在身份验证时,请记住在服务(服务联合)中进行另一层身份验证,因此系统外的任何人都不会向您的服务发送消息。