java - 为 Tomcat 添加 HSTS 特性

标签 java spring security tomcat hsts

相信你们。

我的 web 应用程序在 tomcat 6.0.43 上运行,并且不在前端使用 apache 或 nginx。

我已经使用以下方法将我的网站从 http 重定向到 https:

  1. URL 重定向到 ../webapps/ROOT/index.jsp

<% response.sendRedirect("https://www.epi.com.my/portal/"); %>

  1. ../webapps/myapp/WEB-INF/web.xml
<security-constraint>
<web-resource-collection>
  <web-resource-name>Protected Context</web-resource-name>
     <url-pattern>/*</url-pattern>
 </web-resource-collection>
 <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint></security-constraint>

在下面哪里添加这样的代码

Header add Strict-Transport-Security "max-age=15768000"

或 难道tomcat没有这个功能? 或者我需要在我的每个 Java Web 应用程序 Controller 中进行修改。

最佳答案

如果您能够使用 Tomcat 7 或 8,则可以激活 built in HSTS filter .在 tomcat/conf/web.xml

中取消注释 httpHeaderSecurity 过滤器定义
<filter>
    <filter-name>httpHeaderSecurity</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
    <async-supported>true</async-supported>
</filter>

并添加一个有用的最大年龄参数:

<init-param>
    <param-name>hstsMaxAgeSeconds</param-name>
    <param-value>31536000</param-value>
</init-param>

不要忘记取消注释过滤器映射:

<filter-mapping>
    <filter-name>httpHeaderSecurity</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

关于java - 为 Tomcat 添加 HSTS 特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27541755/

相关文章:

java - 阻止 java 使用某些库

Java Bean 不被识别

java - 无法加载流口水 kie :ksession bean

java - 使用 @PreAuthorize 注释 setter 会不会太残酷?

c# - Ngen 可以用于代码安全吗?

ios - 从 iphone 应用程序逆向工程二进制文件容易吗?如果是这样,您是否推荐任何软件来混淆和加密代码?

java - @JsonFormat 转换时区不正确的日期

java - 我想编写一个 Java 程序,使用发送给浏览器的 HTTP 302 响应消息将所有 GET 请求从浏览器重定向到给定的 URL

java - 如何在 Spring 中加载资源并将其内容用作字符串

java - 对包含松散类文件的 Java 小程序进行签名