Servlet 会话无效

2024-01-26

我在 2 个不同的服务器上有 2 个应用程序 - Tomcat(基本上是 .WAR 文件)和 jBoss 中的 EAR。

EAR 是一个可重用的应用程序,我将在其中对用户进行身份验证并将控件发送回 Tomcat 上的应用程序。在进行身份验证时,我在 jBoss 应用程序上创建一个会话对象。

当我将控件发送回 Tomcat 上的应用程序时,我会询问用户是否要注销身份验证应用程序。如果用户按下“是”按钮,我将必须从身份验证应用程序中注销该用户

问题

1)我读到过滤器是使会话无效的最佳方法。就我而言,由于身份验证应用程序旨在由超过 1 个用户使用,过滤器如何知道需要使哪个会话失效?

2)我是否应该将 jBoss 应用程序中创建的会话 ID 传递到 Tomcat 应用程序,以便当用户决定注销时 - 我需要将相同的会话 ID 传回 jBoss 应用程序以使过滤器失效?


您不需要过滤器。一个简单的 Servlet 就可以做到:

public LogoutServlet extends HttpServlet {
    @Override
    public void doGet(...) {
       request.getSession().invalidate();
    }
}

然后将此 servlet 映射到/lougout in web.xml,每当用户想要注销时,他应该被发送到http://youhost/yourapp/logout.

如果您想在他已经在使用 tomcat 服务器时注销他,您需要重定向回 JBoss 服务器以使那里的会话无效。

注意request.getSession()得到current会话 - 即属于发出请求的用户的会话。您的 servlet 容器(服务器)会为您处理这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Servlet 会话无效 的相关文章

随机推荐