You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jetty Server 8.1.3中为敏感Cookie添加HttpOnly属性

为Jetty Server 8.1.3的会话Cookie添加HttpOnly属性

针对Jetty 8.1.3版本,你可以通过以下几种方式为会话Cookie设置HttpOnly属性:

方法1:通过ServletContextHandler设置初始化参数

你已经在使用setInitParameter配置会话Cookie名称,同样可以用这个方法添加HttpOnly属性:

((ServletContextHandler) context).setInitParameter("org.eclipse.jetty.servlet.SessionCookie", "SessionID");
// 添加HttpOnly属性配置
((ServletContextHandler) context).setInitParameter("org.eclipse.jetty.servlet.SessionHttpOnly", "true");

方法2:在web.xml中配置全局上下文参数

如果更倾向于通过配置文件管理,在项目的web.xml中添加以下context-param:

<context-param>
    <param-name>org.eclipse.jetty.servlet.SessionCookie</param-name>
    <param-value>SessionID</param-value>
</context-param>
<context-param>
    <param-name>org.eclipse.jetty.servlet.SessionHttpOnly</param-name>
    <param-value>true</param-value>
</context-param>

方法3:自定义SessionManager(进阶方案)

如果上述方法不生效,可以直接配置SessionManager的Cookie属性。以Jetty默认的HashSessionManager为例:

// 获取或创建SessionManager
HashSessionManager sessionManager = new HashSessionManager();
// 设置会话Cookie名称
sessionManager.setSessionCookie("SessionID");
// 开启HttpOnly属性
sessionManager.setHttpOnly(true);

// 将SessionManager关联到ServletContextHandler
SessionHandler sessionHandler = new SessionHandler(sessionManager);
context.setSessionHandler(sessionHandler);

Jetty 8的API确实和Jetty 9存在差异,SessionHttpOnly是Jetty 8专门用于控制会话Cookie HttpOnly属性的配置项,可直接对应你的需求场景。

内容的提问来源于stack exchange,提问作者user3506319

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:52:02