将jsessionid附加到从请求标头收到的请求URL

时间:2013-12-30 09:17:25

标签: servlets

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

试试这个,

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