如何在 Apache Tomcat 中启用 SameSite、HTTP-only 和安全 cookie - WKB202740
文章编号: 202740点击此处访问英文版本文章
目的
为 Apache Tomcat 发送的 cookie 启用 HTTPOnly 和 Secure(安全)属性。
环境
- NuGenesis 9 SDMS
- Apache Tomcat 版本 9.0.x
- NuGenesis 8 SDMS
- Apache Tomcat 版本 6.0.29 - 8.5.x
步骤
对于 Apache Tomcat 9 (NuGenesis 9.x) 或 Apache Tomcat 7.x/8.x(NuGenesis 8 从缺省 Tomcat v6.0.29 升级):
- 使用记事本编辑 <驱动器>:\Program Files (x86)\Waters\apache-tomcat-x.y.z\webapps\WebVision\WEB-INF\web.xml 中的文件。
- 将以下行添加到文件中的 web-app 标签下方和第一个 <servlet> 标签上方:
- <session-config>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
- <session-config>
- 保存并关闭 web.xml。
- 使用记事本编辑 <驱动器>:\Program Files (x86)\Waters\apache-tomcat-x.y.z\webapps\NGAudit\WEB-INF\web.xml 中的文件。
- 将以下行添加到文件中的 web-app 标签下方和第一个 <servlet> 标签上方:
- <session-config>
<cookie-config>
<http-only>false</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
- <session-config>
- 使用记事本编辑 <驱动器>:\Program Files (x86)\Waters\apache-tomcat-x.y.z\conf\context.xml 中的文件。
- 将以下行添加到 <Context> 标签下面的文件中:
- <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor" sameSiteCookies="strict" />
- 保存并关闭 context.xml
- 重新启动 Apache Tomcat 服务。
对于 Apache Tomcat 6.0.29(NuGenesis 8 的缺省版本):
- 使用记事本编辑 <驱动器>:\Program Files (x86)\apache-tomcat-6.0.29\conf\server.xml 中的文件。
- 找到以下行:
- <Context path="/servlet" docBase="WebVision" debug="0" reloadable="true" />
- 将 cookie 和 useHttpOnly 属性添加到该标签:
- <Context path="/servlet" docBase="WebVision" debug="0" reloadable="true" cookies="true" useHttpOnly="true" />
- 保存并关闭 server.xml。
- 重新启动 Apache Tomcat 服务。
附加信息
“/ngaudit/servlet”的上下文条目用于旧版 SDMS Audit Trail Viewer(审计追踪查看器)。该应用程序通过 Javascript 从 cookie 中获取会话 ID,因此必须将 useHttpOnly 设置为 False。这是 NuGenesis 9.x 的缺省配置。
在 Apache Tomcat 6.x 中无法设置 Secure(安全)属性。“cookie-config”标签是在 Apache Tomcat 7 中引入的。
id202740, SDMS, SDMS8, SDMS8NU, SUPISDMS, SUPNG