繁体   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