Jakarta ee 使weblogic 11g中所有应用程序的会话无效

Jakarta ee 使weblogic 11g中所有应用程序的会话无效,jakarta-ee,weblogic11g,Jakarta Ee,Weblogic11g,我是weblogic新手,正在从jboss移植一系列web应用程序。我在同一个weblogic服务器上部署了多个war。所有这些配置都是为active directory支持的基于表单的身份验证而配置的 但是,我在注销应用程序时遇到问题。我有一个应用程序作为我的登录应用程序,它包含实际的login.jsp表单。它还有一个注销servlet,用于调用session.invalidate()。调用此函数后,我无法访问主应用程序中的受保护页面,但可以访问其他应用程序中的受保护页面 从我所读到的内容来看

我是weblogic新手,正在从jboss移植一系列web应用程序。我在同一个weblogic服务器上部署了多个war。所有这些配置都是为active directory支持的基于表单的身份验证而配置的

但是,我在注销应用程序时遇到问题。我有一个应用程序作为我的登录应用程序,它包含实际的login.jsp表单。它还有一个注销servlet,用于调用session.invalidate()。调用此函数后,我无法访问主应用程序中的受保护页面,但可以访问其他应用程序中的受保护页面

从我所读到的内容来看,weblogic 11g在所有应用程序中共享相同的会话,这在我看来是有道理的。我正在查找使用以下方法使所有应用程序中的会话无效的引用:

invalidateAll(HttpServletRequest req)
打包

weblogic.servlet.security.ServletAuthentication
然而,我在WebLogic11g中找不到这个或任何类似的东西。这个实用程序类在哪里,或者我应该怎么做

谢谢

更新:

根据以下Josek的回答,我必须为我正在部署的所有应用程序将以下内容添加到我的weblogic.xml文件中:

 <session-descriptor>
     <sharing-enabled>true</sharing-enabled>
 </session-descriptor>

真的
我正在寻找的jar名为wls-api.jar,它包含ServletAuthentication类。我使用的是基于zip的10.3.3.0版本的web逻辑服务器。作为Weblogic Fusion安装的一部分,我在wlserver_10.3服务器安装中找到了jar。我只是把这个jar添加到我们的NexusMaven存储库中。

作为WLS10.3(又名11g)的一部分进行了记录,所以它应该可以在您的注销servlet中工作。你试过了吗?有没有遇到过错误

它还有一个注销servlet 调用session.invalidate()。之后 打这个电话,我无法访问受保护的 主应用程序中的页面,但可以 访问其他数据库中受保护的页面 应用程序

这向我表明,会话不是跨web应用程序共享的,这是默认行为。如果会话被共享,用户将从所有应用程序中注销。对于要共享的会话,您必须设置 真实

作为

默认情况下,Web应用程序不会 共享同一会话。如果你愿意 喜欢Web应用程序来共享 在同一会话中,您可以配置 应用程序上的会话描述符 weblogic-application.xml中的级别 部署描述符。启用Web 应用程序共享相同的 会话,将共享设置为启用 会话描述符中的属性 在weblogic-application.xml中为true 部署描述符


嗨,谢谢你的信息。invalidateAll的问题是我找不到包含该方法的jar文件。我将尝试设置“已启用共享”属性。谢谢好的,一切正常。请参阅上面基于您的答案的解决方案。这可能适用于weblogic app server下部署的多个
war
。如果我们在weblogic中部署了多个
ear
,该怎么办。这些被访问为
hostname.com/webapp1
hostname.com/app2
像往常一样oracle文档没有明确提到
weblogic application.xml
weblogic.xml
,或者我不清楚它们之间的区别。