我正在使用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名称。
答案 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