Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何添加Spring安全HTTP响应头_Java_Spring_Spring Security - Fatal编程技术网

Java 如何添加Spring安全HTTP响应头

Java 如何添加Spring安全HTTP响应头,java,spring,spring-security,Java,Spring,Spring Security,从Spring 3.2开始,我可以简单地将其添加到我的安全xml中: <security:headers> <security:frame-options policy="SAMEORIGIN" /> </security:headers> 但是Spring 3.1版不支持这一点,在不升级版本的情况下有什么解决方法吗 这是3.1版的文档: 我相信xframeoptionheaderwriter实现了此配置背后的逻辑。它是

从Spring 3.2开始,我可以简单地将其添加到我的安全xml中:

 <security:headers>
    <security:frame-options
            policy="SAMEORIGIN" />
</security:headers>

但是Spring 3.1版不支持这一点,在不升级版本的情况下有什么解决方法吗

这是3.1版的文档:


我相信
xframeoptionheaderwriter
实现了此配置背后的逻辑。它是在Spring3.2中引入的,在该版本之前没有类似的版本

如果您想自己实现,可以使用一个简单的过滤器:

public class XFrameOptionsHeaderFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        response.setHeader("X-Frame-Options", "SAMEORIGIN");
        filterChain.doFilter(request, response);
    }

}
您需要在应用程序上下文中为此类创建bean:

<bean id="xFrameOptionsHeaderFilter" class="your.package.XFrameOptionsHeaderFilter"/>

您可以在控制器响应中设置自定义标头;tnx非常好的回答,但我似乎无法让它工作,我看到bean已加载,但在我发出请求时未调用方法。你知道可能遗漏了什么吗?也许你把豆子放错地方了?您应该将它放在应用程序上下文中,即
contextConfigLocation
中使用的上下文,而不是servlet上下文中。
<filter>  
    <filter-name>xFrameOptionsHeaderFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>xFrameOptionsHeaderFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>