¿如何在同一耳朵的不同战争之间共享安全性和过滤器?

时间:2019-04-10 12:15:02

标签: spring jsf spring-security jsf-2.2

我的耳朵里有三场战争。 war1以使用用户登录名,这可以正常工作。带有app1的war2和用于app2的war3。

我想做的是共享会话,并在war2和war3中应用安全过滤器。如图中所示。我该怎么办?

ear

1 个答案:

答案 0 :(得分:0)

首先,您需要了解这三个应用程序都是独立的,并且由上下文分开,并且不共享任何资源,也无法直接相互通信。为此,您需要使用外部身份验证服务,例如密钥斗篷。也许在EAR中作为一个独立模块存在的单例EJB被所有战争使用,从而EJB保持了安全状态。

在Websphere中,有一个WebsphereApllicationSession左右,它允许在模块之间共享状态,但是特定于此Websphere。此类功能取决于您使用的应用服务器,并且不可移植。

有关更多信息,请参见以下链接,但是我建议使用SSO服务器,例如密钥斗篷。

https://technology.amis.nl/2012/01/18/sharing-session-state-between-jee-web-application-through-weblogic-session-descriptor-of-sharing-enabled/

https://www.google.com/amp/s/thewonggei.wordpress.com/2009/07/22/how-to-share-session-between-web-modules-in-websphere-6-1/amp/

https://softwareengineering.stackexchange.com/questions/178290/why-cant-wars-share-session-info

Wildfly share session between EARs?

https://forum.reportserver.net/viewtopic.php?id=173

https://www.keycloak.org