[英]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.