我正在使用播放版本2.6.2。该应用程序没有直接登录。还有另一个应用程序将创建一个会话和一个cookie名称
PLAY_SESSION
这个cookie是我在响应头中添加的cookie,以便我可以直接登录Play应用程序。
在浏览器中,我能够看到名为PLAY_SESSION
的cookie,其路径值来自第一个应用程序上下文路径(例如"/"
)。
问题是每当用户注销时,Play将创建一个与PLAY_SESSION
具有相同名称的cookie,并使用不同的路径作为播放应用程序上下文路径(例如"/test"
)。现在浏览器中有两个cookie,它们具有相同的名称,但是两个不同的路径值导致了问题。
如何删除Play生成的新Cookie?我试过了Http.Context.current().response().discardCookie("PLAY_SESSION", "/test");
Logout代码如下:
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 :(得分:0)
花了2天后经历了源代码终于得到了答案,因为如果有人想要更改cookie的会话路径,则需要使用play.http.session.path而不是为2.6.x更新文档的 -
session = {
path = ${}
}
所以更改PLAY_SESSION_COOKIE会话路径需要使用旧版本配置属性play.http.session.path