我有两个使用Spring Security开发的Web应用程序。每个应用程序都有自己的WAR,因此部署在它自己的上下文中:
localhost:8080/my-app1
localhost:8080/my-app2
现在,当我尝试在my-app1
上对my-app2
上的控制器进行AJAX调用时,收到一条错误消息,指出我的会话已过期。这是有道理的,毕竟用户在my-app1
上进行了身份验证,但未在my-app2
上进行身份验证。
有没有解决方法?
答案 0 :(得分:0)
我有两个解决方案:
也发现了这一点:Any way to share session state between different applications in tomcat?
答案 1 :(得分:0)
我建议您在浏览器端将登录令牌存储为cookie条目,cookie应该与app1和app2具有相同的域(在您的情况下,它只是localhost)。因此,它将被传递到两个应用程序的后端。
登录令牌可以有加密的用户名,可以由服务器解密,密码的哈希值用于验证。
这实际上是Spring Security中基于令牌的记住我服务背后的想法。