簡體   English   中英

Play Framework注銷Cookie丟棄Java

[英]Play Framework logout cookie discard java

我正在使用播放版本2.6.2。 該應用程序沒有直接登錄。 還有另一個應用程序將創建一個會話,並將一個cookie名稱命名為PLAY_SESSION ,該cookie是我在響應標頭中添加的cookie,以便我可以直接登錄Play應用程序。

在瀏覽器中,我可以看到一個名為PLAY_SESSION的cookie,其路徑值來自第一個應用程序上下文路徑(例如"/" )。

問題是,每當用戶注銷時,Play都會再創建一個與PLAY_SESSION同名的cookie,但其路徑是Play應用程序上下文路徑(例如"/test" )。 現在,瀏覽器中有兩個具有相同名稱但兩個不同路徑值的cookie,這會導致問題。

如何刪除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實現。

花了兩天時間並仔細檢查了源代碼后,終於得到了答案,因為如果有人想更改cookie的會話路徑,文檔仍未更新至2.6.x,則需要使用play.http.session.path而不是-

會話配置

session = {
 path = ${}
}

因此要更改PLAY_SESSION_COOKIE會話路徑,需要使用舊版本的配置屬性play.http.session.path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM