2017-11-29 12 views
0

私はプレイバージョン2.6.2を使用しています。アプリケーションには直接ログインはありません。セッションを作成する別のアプリケーションと1つのクッキー名が PLAY_SESSIONであり、このクッキーは私がレスポンスヘッダーに追加しているので、直接Playアプリケーションにログインできます。Play FrameworkログアウトCookie破棄Java

ブラウザでは、名前がPLAY_SESSIONであり、そのパス値が最初のアプリケーションコンテキストパス(例:"/")のCookieであることがわかります。

問題はユーザーがログアウトするたびに、再生アプリケーションのコンテキストパス(例:"/test")と異なるパスを持つPLAY_SESSIONと同じ名前のCookieがもう1つ作成されます。同じ名前のブラウザーで使用できる2つのCookieがありますが、問題の原因となっている2つの異なるパス値があります。

Playで生成された新しいCookieを削除するにはどうすればよいですか?私は、ログアウトのコードは次のようである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日を過ごした後、ソースコードが消えてしまったので、ドキュメントがplay 2.6.x用に更新されていないため、誰かがセッションのパスを変更したい場合はplay.http.session.path代わりに -

セッション構成

session = { 
path = ${} 
} 
ので

古いバージョンの設定プロパティを使用する必要がPLAY_SESSION_COOKIEセッションのパスを変更するにはplay.http.session.path

関連する問題