tomcat7从 7.0.63开始 ,
tomcat8从 8.0.23版本开始,
tomcat支持在它自带的web.xml里配置HttpHeaderSecurityFilter,这是一个可选项,默认不开启该filter,开启后可支持的配置项如下:
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
该配置如果出现在项目中,则对单个项目有效。如果想对tomcat下所有项目生效则需要将改配置项写在 tomcat目录下即${catalina_home}/conf/web.xml中
另外,需要注意的是Spring Security中也有类似的配置项,如果使用Spring Security框架需要注意的是该框架默认设置 X-Frame-Options: DENY
如下图所示:
上图来自官方文档说明(4.0.1)
Tomcat的HttpHeaderSecurityFilter配置项会覆盖Spring Security的配置。
验证方法:
打开网页,用浏览器的开发工具查看返回的response headers