我有2个osgi分发的Web应用程序A(A1,A2)和B(B1,B2),我使用shiro来共享单个登录的http会话,以便一个系统中的logginng也登录到另一个系统。但我希望会话数据在系统A和B之间除了身份验证/授权数据之外,所以我需要一种方法来共享身份验证数据并分离A和B的系统特定会话数据。我在想使用shiro单点登录并为每个系统使用不同的分布式会话来存储系统特定数据,主要工作流程为:
有意义吗?这是解决我问题的正确方法吗?什么是最好的方法?请分享你的想法。 任何输入都表示赞赏。 谢谢。
答案 0 :(得分:0)
我用Servlet过滤器做过类似的事情。我的HtppSession包含授权标识,然后我将其作为请求的安全上下文进行查找和提供。如果不存在安全ID,则强制客户端登录。显然,安全上下文可以保存在分发机制中,因此可以从集群中的所有系统获得。
确保在客户端和系统之间使用https,否则有人可以窃听,读取带有id的cookie,并在受害者授权的情况下登录其中一个系统。即会话劫持。