目前在我们的应用程序中,客户端应用程序正在其中一个请求标头中发送jsessionid。 现在我想将请求头中收到的这个jsessionid附加到请求URL以创建会话。
我想创建与URL重写相同的行为,其中当jsessionid附加到请求URL时会自动创建会话。
而且我想发送这个更新的请求url,并将jsessionid附加到下一个我可以获得会话的过滤器。
出于某些安全原因,我们不希望将jsessionid附加到请求网址,而是决定发送请求标头。
让我知道如何实现这一目标。
答案 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