2017-11-29 5 views
0

재생 버전 2.6.2를 사용 중입니다. 응용 프로그램에는 직접 로그인이 없습니다. 세션을 만들고 다른 쿠키 이름을 PLAY_SESSION으로 만드는 또 다른 응용 프로그램이 있는데이 쿠키는 응답 헤더에 추가되어 있으므로 직접 Play 응용 프로그램에 로그인 할 수 있습니다.Play Framework 로그 아웃 쿠키 폐기 Java

브라우저에서 이름이 PLAY_SESSION 인 쿠키를 볼 수 있으며 경로 값은 첫 번째 애플리케이션 컨텍스트 경로 (예 : "/")에서입니다.

문제는 사용자가 로그 아웃 할 때마다 재생 응용 프로그램 컨텍스트 경로 (예 : "/test")와 다른 경로로 PLAY_SESSION과 동일한 이름의 쿠키를 하나 더 만듭니다. 브라우저에는 동일한 이름을 가진 두 개의 쿠키가 있지만 문제의 원인이되는 두 개의 다른 경로 값이 있습니다.

재생으로 생성 된 새로운 쿠키는 어떻게 삭제합니까? 내가 Http.Context.current().response().discardCookie("PLAY_SESSION", "/test");

로그 아웃 코드를 시도하는 것은 같은 것입니다 :

DefaultLogoutLogic<Result, PlayWebContext> logoutLogic = new DefaultLogoutLogic<>(); 
final PlayWebContext playWebContext = new PlayWebContext(ctx(), playSessionStore); 
Result result = logoutLogic.perform(playWebContext, config, config.getHttpActionAdapter(), 
     "/v3/logout-callback", null, true, true, false); 

어떤 도움에 감사드립니다. 구현은 Java로 진행됩니다.

답변

0

2 일을 소비하고 소스 코드를 마친 후 마침내 대답이 나타났습니다. 문서가 여전히 2.6.x 용으로 업데이트되지 않았기 때문에 누군가가 쿠키의 세션 경로를 변경하려는 경우 play.http.session.path를 사용해야합니다. 대신 -

세션 구성

session = { 
path = ${} 
} 
그래서

이전 버전의 구성 속성을 사용하는 데 필요한 PLAY_SESSION_COOKIE 세션 경로를 변경하는 play.http.session.path

관련 문제