NutzCN Logo
问答 关于ShiroSessionProviderExt中的OPTIONS
发布于 2495天前 作者 wx_fo18jtvp1tgl9ossl523 1482 次浏览 复制 上一个帖子 下一个帖子
标签:

在用options进行请求时,返回的response的header中,默认为Allow:GET, HEAD, POST, PUT, DELETE, OPTIONS,现在项目中需要屏蔽delete,put等请求,
我再ShiroSessionProviderExt中,使用如下方式,但是没起作用,还是返回包含了PUT,DELETE在内。在此想请教下兽总,不知道对这块了解吗?

	public HttpServletRequest filter(HttpServletRequest req, HttpServletResponse resp, ServletContext servletContext) {
		//不支持跨域
		if ("OPTIONS".equalsIgnoreCase(req.getMethod())) {
			resp.setHeader("Allow", "GET,POST,HEAD,OPTIONS");
			
		}
		if (req instanceof ShiroHttpServletRequest)
			return req;
		return new ShiroHttpServletRequest(req, servletContext, true);
	}
8 回复

是不是加了org.nutz.mvc.filter.CrossOriginFilter

没有。
现在已经通过tomcat的web.xml配置了安全策略,options等请求返回了403,但是response返回的allow还是包含PUT,DELETE了。
我只是希望response返回的allow里不包含PUT,DELETE。
这种方法不太行。。

是不是nginx/httpd加的

没,就是直接访问tomcat。

本地能重现的话,debug一下setHeader方法,看看是哪里设置了

提交options请求时,进入了setHeader并设置了allow,但就是通过浏览器查看还是显示默认的。。。。

没有其他地方调用到setHeader?? 或者 addHeader

没有特别的设置。。。

添加回复
请先登陆
回到顶部