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

本文介绍如何通过自定义HeaderWriter来修改Spring Security中默认的X-Frame-Options头部设置,使其从DENY变为SAMEORIGIN,允许同源iframe调用,并讨论了不同版本间的行为差异。
摘要由CSDN通过智能技术生成
protected void configure(HttpSecurity http) throws Exception{
		/**
		 * 自定义HeaderWriter,用以覆盖security默认的Header,
		 * 使默认的"X-Frame-Options:DENY"禁止一切iframe调用
		 * 转化为"X-Frame-Options:SAMEORIGIN"允许同域下的iframe调用
		 */
		HeaderWriter headerWriter = new HeaderWriter() {
			@Override
			public 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()就成功起到替换效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值