自定义HeaderWriter,使同域下的iframe被允许调用页面

来源:互联网 发布:omega 9脂肪酸知乎 编辑:程序博客网 时间:2024/04/29 05:33
protected void configure(HttpSecurity http) throws Exception{/** * 自定义HeaderWriter,用以覆盖security默认的Header, * 使默认的"X-Frame-Options:DENY"禁止一切iframe调用 * 转化为"X-Frame-Options:SAMEORIGIN"允许同域下的iframe调用 */HeaderWriter headerWriter = new HeaderWriter() {@Overridepublic void writeHeaders(HttpServletRequest request, HttpServletResponse response) {response.setHeader("X-Frame-Options","SAMEORIGIN");}};List<HeaderWriter> headerWriters = new ArrayList<HeaderWriter>();headerWriters.add(headerWriter);HeaderWriterFilter headerWriterFilter = new HeaderWriterFilter(headerWriters);http.addFilter(headerWriterFilter);}

以上配置似乎对spring security的版本有一定要求:

今天在一个就项目上使用了上面的配置,setHeader()并没有成功替换掉原有的header信息,而是起到了追加的作用,也就是效果等同与addHeader();

后来对比了成功案例的配置,发现成功案例使用的是是4.1.1版本的jar包,而失败案例是3.2的,升级了版本后,setHeader()就成功起到替换效果了。

1 0
原创粉丝点击