2017-03-02 140 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的最佳途徑。

回答