【问题标题】:Appending jsessionid to the request url received from request header将 jsessionid 附加到从请求标头收到的请求 url
【发布时间】:2014-01-17 03:54:34
【问题描述】:

目前在我们的应用程序中,客户端应用程序正在请求标头之一中发送 jsessionid。 现在我想将在请求标头中收到的这个 jsessionid 附加到请求 url 以创建会话。

我想创建与 URL 重写相同的行为,其中当 jsessionid 附加到请求 URL 时会自动创建会话。

我还想发送这个更新后的请求 url,并将 jsessionid 附加到我可以获得会话的下一个过滤器中。

出于某些安全原因,我们不想将 jsessionid 附加到请求 url,而是决定发送请求标头。

让我知道如何实现这一目标。

【问题讨论】:

    标签: servlets


    【解决方案1】:

    试试这个,

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) request;
        HttpServletResponse response = (HttpServletResponse) response;
    
        if ("GET".equals(request.getMethod()) && request.getParameter("JSESSIONID") != null) {
            response.sendRedirect(request.getRequestURL().append(";JSESSIONID=")
                .append(request.getParameter("JSESSIONID")).toString());
        } else {
            chain.doFilter(request, response);
        }
    }
    

    也可以通过这个might be useful

    【讨论】:

    • 感谢您的回复@san krish。但是我需要将此更新的请求发送到其他过滤器以创建会话,因为现在附加了 jsessionid 并且不想重定向。
    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2020-10-14
    • 1970-01-01
    • 2016-12-22
    • 2017-02-15
    相关资源
    最近更新 更多