0

我需要为一个新的 JSF Web 应用程序实现安全性,该应用程序与一个“旧”的基于 JSP/servlet 的应用程序一起部署在单个 EAR 文件中(容器是 WebLogic 11g)。现在我有一个 JSF Phase Listener 来检查用户在他们的会话中是否有一个标志表明他们已经登录(请注意,“共享会话数据”已打开,以便两个 Web 应用程序使用相同的 HTTP 会话) .

如果可能,我宁愿不使用阶段侦听器,而是在 web.xml 中指定如果用户未登录,则将用户重定向到登录页面(这是在旧版 Web 应用程序中实施检查的方式)但是,登录页面位于与 JSF Web 应用程序不同的上下文根目录中的“旧版”应用程序中。(请注意,旧应用程序在比新 JSF Web 应用程序更旧的 servlet 容器版本上运行)。

如果 JSF Web 应用程序的 web.xml 文件具有不同的上下文根,有没有办法将它们配置为能够重定向到第一个 Web 应用程序的登录页面?

4

1 回答 1

0

在 WebLogic 11g 中似乎没有办法做到这一点(重定向到另一个上下文根的登录页面)。似乎 Phase Listener 解决方案是最好的方法。

注意 WebLogic 11g 确实允许在单个 EAR 中部署的 Web 应用程序之间共享会话和用户主体信息,但不支持将 URL 指定到与 web.xml 所在的当前 Web 应用程序不同的上下文根中的登录页面. 因此,需要一个类似 servlet 过滤器的解决方案,该解决方案可以重定向到其他 Web 应用程序中的登录页面。

于 2012-05-08T18:14:21.980 回答