2017-03-02 540 views
-2

我在Spring Boot中使用Spring Boot,我想修改JSESSIONID的cookie名称和值。我在网上搜索,但找不到任何合适的解决方案。我正在使用Wildfly服务器。我是一个春季框架的新手。在请求标题中修改JSESSIONID cookie

RequestFilter.java

@Component 
@Order(Ordered.HIGHEST_PRECEDENCE) 
public class RequestFilter implements Filter { 

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) { 
     HttpServletResponse response = (HttpServletResponse) res; 
     HttpServletRequest request = (HttpServletRequest) req; 

//  Cookie[] cookies = request.getCookies(); 
//  for (Cookie cookie : cookies) { 
//   cookie.setMaxAge(0); 
//   cookie.setValue(null); 
//   cookie.setPath("/"); 
//   response.addCookie(cookie); 
//  } 
     response.setHeader("Access-Control-Allow-Origin", "http://localhost:4200"); 
     response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE"); 
     response.setHeader("Access-Control-Allow-Headers", "x-requested-with"); 
     response.setHeader("Access-Control-Max-Age", "3600"); 
     response.setHeader("Access-Control-Allow-Credentials", "true"); 
     response.setHeader("Set-Cookie", null); 
     response.setHeader("X-Powered-By", null); 
     response.setHeader("Server", null); 
     if (!(request.getMethod().equalsIgnoreCase("OPTIONS"))) { 
      try { 

       chain.doFilter(req, res); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } else { 
      System.out.println("Pre-flight"); 
      response.setHeader("Access-Control-Allow-Methods", "POST,GET,DELETE"); 
      response.setHeader("Access-Control-Max-Age", "3600"); 
      response.setHeader("Access-Control-Allow-Headers", "authorization, content-type," + 
        "access-control-request-headers,access-control-request-method,accept,origin,authorization,x-requested-with"); 
      response.setStatus(HttpServletResponse.SC_OK); 
     } 

    } 

    public void init(FilterConfig filterConfig) { 
    } 

    public void destroy() { 
    } 

} 

请给我建议在春季安全重命名JSESSIONID cookie的最佳途径。

回答