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

问题描述 投票:0回答:1

我有一个包含三场战争的耳朵。 war1使用用户登录,这可以正常工作。 war2与app1和war3 for app2。

我要做的是共享会话并将安全过滤器应用于war2和war3。如图所示。我怎样才能做到这一点?

spring jsf spring-security jsf-2.2
1个回答
0
投票

首先,您需要了解所有三个应用程序都是独立的,并且由上下文分隔,并且不共享任何资源,并且不能直接相互通信。为此,您需要使用像keycloak这样的外部身份验证服务。也许单个EJB作为自己的模块存在于EAR中并被所有战争使用,因此EJB保持安全状态。

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

有关详细信息,请参阅以下链接,但我建议使用SSO服务器,例如keycloak。

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

© www.soinside.com 2019 - 2024. All rights reserved.