Play Framework注销cookie丢弃java

时间:2017-11-29 12:25:02

标签: java cookies playframework logout

我正在使用播放版本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。

1 个答案:

答案 0 :(得分:0)

花了2天后经历了源代码终于得到了答案,因为如果有人想要更改cookie的会话路径,则需要使用play.http.session.path而不是为2.6.x更新文档的 -

会话配置

session = {
 path = ${}
}

所以更改PLAY_SESSION_COOKIE会话路径需要使用旧版本配置属性play.http.session.path