跳转到主内容
Waters China

如何在 Apache Tomcat 中启用 SameSite、HTTP-only 和安全 cookie - WKB202740

目的

为 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 升级):

  1. 使用记事本编辑 <驱动器>:\Program Files (x86)\Waters\apache-tomcat-x.y.z\webapps\WebVision\WEB-INF\web.xml 中的文件。
  2. 将以下行添加到文件中的 web-app 标签下方和第一个 <servlet> 标签上方:
    •     <session-config>
          <cookie-config>
              <http-only>true</http-only>
              <secure>true</secure>
          </cookie-config>
          </session-config>
  3. 保存并关闭 web.xml。
  4. 使用记事本编辑 <驱动器>:\Program Files (x86)\Waters\apache-tomcat-x.y.z\webapps\NGAudit\WEB-INF\web.xml 中的文件。
  5. 将以下行添加到文件中的 web-app 标签下方和第一个 <servlet> 标签上方:
    •     <session-config>
          <cookie-config>
              <http-only>false</http-only>
              <secure>true</secure>
          </cookie-config>
          </session-config>
  6. 使用记事本编辑 <驱动器>:\Program Files (x86)\Waters\apache-tomcat-x.y.z\conf\context.xml 中的文件。
  7. 将以下行添加到 <Context> 标签下面的文件中:
    • <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor" sameSiteCookies="strict" />
  8. 保存并关闭 context.xml
  9. 重新启动 Apache Tomcat 服务。

对于 Apache Tomcat 6.0.29(NuGenesis 8 的缺省版本):

  1. 使用记事本编辑 <驱动器>:\Program Files (x86)\apache-tomcat-6.0.29\conf\server.xml 中的文件。
  2. 找到以下行:
    • <Context path="/servlet" docBase="WebVision" debug="0" reloadable="true" />
  3. 将 cookie 和 useHttpOnly 属性添加到该标签:
    • <Context path="/servlet" docBase="WebVision" debug="0" reloadable="true" cookies="true" useHttpOnly="true" />
  4. 保存并关闭 server.xml。
  5. 重新启动 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