2014-11-25 3 views
2

스프링 보안 java 구성을 사용하여 쿠키의 도메인 속성을 구성하는 방법. 그러나 나는 내가 내 응용 프로그램의 모든 web.xml 파일을 jave하지 않는, 내가 아래의 예제처럼 보이는 xml 형식의 설정이 있음을 알고 이제스프링 또는 스프링 보안을 사용하여 쿠키 헤더의 도메인 속성을 구성하십시오.

Domain=.test.example.com; 

처럼 하나의 특정 subdomin 뭔가에 쿠키의 액세스를 제한 할 필요가 더 이상 나는 모든 구성을 물마루 자바로 만들고 싶습니다. 내가 몇 가지 세션 구성 개체 또는 매개 변수에 대한 검색되지 않았다하지만 난 아무도 즉 내가 가지고 만 sessionManagement 개체를 찾을 수 있습니다 WebSecurityConfigurerAdapter 확장 내의 SecurityConfig 클래스에서

<session-config> 
    <session-timeout>400</session-timeout> 
    <cookie-config> 
     <name>KSESSION</name> 
     <path>/</path> 
     <http-only>true</http-only> 
     <secure>true</secure> 
    </cookie-config> 
</session-config> 

.

.sessionManagement() 
     .enableSessionUrlRewriting(false) 

     .sessionAuthenticationStrategy(sessionControlStrategy()) 
     .sessionCreationPolicy(SessionCreationPolicy.ALWAYS) 
     .sessionFixation().newSession() 

     .maximumSessions(1) 
     .maxSessionsPreventsLogin(true) 
     .expiredUrl("/login?expired") 

은 어쩌면 내가 매개 변수 setUseHttpOnly 및 경로 매개 변수 거기있는 TomcatContextCustomizer 콩 즉 있지만 도메인 속성에 아무런 세터 물마루 이루어집니다.

@Bean 
public TomcatContextCustomizer tomcatContextCustomizer() { 
    System.out.println("TOMCATCONTEXTCUSTOMIZER INITILIZED"); 
    return new TomcatContextCustomizer() { 

    @Override 
    public void customize(Context context) { 
     // TODO Auto-generated method stub 
     context.addServletContainerInitializer(new WsSci(), null); 
     context.setUseHttpOnly(true); 
     context.setPath("/testBlaBlaPage"); 



    } 
}; 

}

그래서 기본적으로 내 목표는 현재 해당

Set-Cookie: JSESSIONCookie: JSESSIONID=DEAC4422AB4E28A7062C08724C8BCFAA; Path=/login; Secure; Domain=.test.example.com; HttpOnly. 

같은 HTTP 헤더를하는 것입니다 그것은 본다 같은

Set-Cookie: JSESSIONCookie: JSESSIONID=DEAC4422AB4E28A7062C08724C8BCFAA; Path=/; Secure; HttpOnly 

답변

2

난 내 후 질문에 대한 답변을 찾을 확인 즉, tomcat 컨텍스트 아래 setSessionCookieDomain() 메서드입니다. 예 :

context.setSessionCookieDomain (". test.example.com");

관련 문제