我是 weblogic 的新手,正在从 jboss 移植一系列 web 应用程序。我有多个战争部署到同一个 weblogic 服务器。所有这些都配置为由活动目录支持的基于表单的身份验证。
但是,我在注销应用程序时遇到问题。我有一个用作我的登录应用程序的应用程序,其中包含实际的 login.jsp 表单。它还有一个调用 session.invalidate() 的注销 servlet。调用此函数后,我无法访问主应用程序中的受保护页面,但可以访问其他应用程序中的受保护页面。
从我一直在阅读的内容来看,weblogic 11g 在所有应用程序中共享相同的会话,这与我所看到的相符。我正在寻找有关使用以下内容使所有应用程序中的会话无效的参考:
invalidateAll(HttpServletRequest req)
包装内
weblogic.servlet.security.ServletAuthentication
但是,我在 weblogic 11g 中找不到这个或类似的东西。这个实用程序类在哪里或者我应该怎么做?
谢谢
更新:
根据 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 并将其添加到我们的 Nexus maven 存储库中。