将HSTSfunction添加到Tomcat

相信你们。

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

我已经使用以下命令将我的网站从http重定向强制执行到https:

  1. URL重定向位于../webapps/ROOT/index.jsp

  1. ../webapps/myapp/WEB-INF/web.xml
   Protected Context /*   CONFIDENTIAL  

在哪里添加此类代码

标题添加Strict-Transport-Security“max-age = 15768000”

或者tomcat没有这个function吗? 或者我需要在每个我的java web app控制器中进行修改。

您可以使用filter添加它。 将以下代码段添加到web.xml:

  HSTSFilter security.HSTSFilter  

然后在您的webapp中创建一个filter:

 package security; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; public class HSTSFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse resp = (HttpServletResponse) res; if (req.isSecure()) resp.setHeader("Strict-Transport-Security", "max-age=31622400; includeSubDomains"); chain.doFilter(req, resp); } } 

也可以使用全局web.xml(conf / web.xml)添加filter。

如果您能够使用Tomcat 7或8,则可以激活内置的HSTSfilter 。 取消注释tomcat/conf/web.xml httpHeaderSecurityfilter定义

  httpHeaderSecurity org.apache.catalina.filters.HttpHeaderSecurityFilter true  

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

  hstsMaxAgeSeconds 31536000  

不要忘记取消注释filter映射:

  httpHeaderSecurity /* REQUEST  

使用url-rewrite 。

  1. 创建一个url-rewrite配置文件并将其放入Web应用程序的WEB-INF/classes目录中
  2. 添加将该标头添加到所有请求的规则

请注意,这不是特定于HSTS的:您可以使用url-rewrite执行任何操作。

  1. 只需在jsp scriptlet标签下的jsp中添加此代码即可

     <% response.setHeader("Strict-Transport-Security" ,"max-age=7776000" ); %> 

要么

  1. 如果JBoss然后在应用程序的web.xml中添加以下标签,也可以添加到服务器

            

    对于你必须另外添加xmlnsi它将抛出解析exception

要么

  1. 您可以做一件事:在应用程序中创建filter并在web.xml中配置该应用程序
Interesting Posts