将HSTSfunction添加到Tomcat
相信你们。
我的Web应用程序在tomcat 6.0.43上运行,并且不在前面使用apache或nginx。
我已经使用以下命令将我的网站从http重定向强制执行到https:
- URL重定向位于../webapps/ROOT/index.jsp
- ../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
httpHeaderSecurity
filter定义
httpHeaderSecurity org.apache.catalina.filters.HttpHeaderSecurityFilter true
并添加一个有用的最大年龄参数:
hstsMaxAgeSeconds 31536000
不要忘记取消注释filter映射:
httpHeaderSecurity /* REQUEST
使用url-rewrite 。
- 创建一个url-rewrite配置文件并将其放入Web应用程序的
WEB-INF/classes
目录中 - 添加将该标头添加到所有请求的规则
请注意,这不是特定于HSTS的:您可以使用url-rewrite执行任何操作。
-
只需在jsp scriptlet标签下的jsp中添加此代码即可
<% response.setHeader("Strict-Transport-Security" ,"max-age=7776000" ); %>
要么
-
如果JBoss然后在应用程序的web.xml中添加以下标签,也可以添加到服务器
对于
你必须另外添加xmlnsi它将抛出解析exception
要么
- 您可以做一件事:在应用程序中创建filter并在web.xml中配置该应用程序