在Grizzly中配置会话cookie名称

时间:2016-11-29 16:57:39

标签: java session-cookies grizzly

我正在使用Grizzly 2.3.24作为我的应用程序的独立网络服务器。由于Grizzly-1798已关闭,我想实现自己的SessionManager。但似乎,我缺少配置选项来设置默认会话cookie名称。

在我获得会话之前设置所需的cookie名称是有效的,但这看起来有点疯狂,不是吗?

这是一个访问Jersey资源中的会话的示例:

@GET
public Response testGetSession(@Context Request request) {
    request.setSessionCookieName("mySessionCookie");

    Session session = request.getSession();
    log.info("Got session id {}", session.getIdInternal());

    return Response.ok().entity("hallo").build();
}

如果我没有使用request.setSessionCookieName()指定它,则默认为JSESSIONID

我理解,对于所有请求,可以在RequestFilter中执行此操作,但我是否真的需要走这条路?

我的期望是SessionManager将负责定义cookie名称。

1 个答案:

答案 0 :(得分:1)

经过一番研究,我认为这是一个错误。我已提交GRIZZLY-1877

<强>更新

GRIZZLY-1877已解决,版本2.3.30可供下载和maven中心。

因此,不再需要下面的解决方法。只需实施close all [X,Y]=meshgrid(0:100,0:100); Z=(X+Y.^2)*1e10; [C,h]=contour(X,Y,Z); h.ShowText='on'; 即可解决问题。

旧的解决方法:

与此同时(或者如果v2.3.30不是一个选项),我有一个解决方法,使用Jersey的SessionManager#getSessionCookieName()为每个ContainerRequestFilter设置会话cookie名称:

Request