我的耳朵里有三场战争。 war1以使用用户登录名,这可以正常工作。带有app1的war2和用于app2的war3。
我想做的是共享会话,并在war2和war3中应用安全过滤器。如图中所示。我该怎么办?
答案 0 :(得分:0)
首先,您需要了解这三个应用程序都是独立的,并且由上下文分开,并且不共享任何资源,也无法直接相互通信。为此,您需要使用外部身份验证服务,例如密钥斗篷。也许在EAR中作为一个独立模块存在的单例EJB被所有战争使用,从而EJB保持了安全状态。
在Websphere中,有一个WebsphereApllicationSession左右,它允许在模块之间共享状态,但是特定于此Websphere。此类功能取决于您使用的应用服务器,并且不可移植。
有关更多信息,请参见以下链接,但是我建议使用SSO服务器,例如密钥斗篷。
https://softwareengineering.stackexchange.com/questions/178290/why-cant-wars-share-session-info
Wildfly share session between EARs?