2017-03-02 95 views
-2

私はSpring SecurityでSpring Securityを使用しています。私は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クッキーの名前を変更する最善の方法を提案します。

答えて

1

あなたはapplication.propertiesファイルにクッキー名を設定することができます。

server.session.cookie.name = MYSESSIONID 

参考:https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

+1

私はJBossアプリケーションサーバを使用していますし、上記の方法で、私はセッションクッキー名を変更することができるよけどJBossでは動作しません。私は春のブートonStartupメソッドをオーバーライドは、JBossで403エラーを与えているが、それはtomcatのために正常に動作していることを観察した。 – Anony

関連する問題