NutzCN Logo
问答 ShiroSessionProvider类
发布于 2749天前 作者 qq_4a89c7c9 1783 次浏览 复制 上一个帖子 下一个帖子
标签:
public class ShiroSessionProvider implements SessionProvider {

	public HttpServletRequest filter(HttpServletRequest req, HttpServletResponse resp, ServletContext servletContext) {
		if ("OPTIONS".equalsIgnoreCase(req.getMethod())) {
			resp.addHeader("Access-Control-Allow-Origin", "*");
			resp.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Key");
		}
		if (req instanceof ShiroHttpServletRequest)
			return req;
		return new ShiroHttpServletRequest(req, servletContext, true);
	}

这里的if ("OPTIONS".equalsIgnoreCase(req.getMethod())) {
resp.addHeader("Access-Control-Allow-Origin", "*");
resp.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Key");
}

麻烦问下兽总,是什么作用呢,允许所有系统跨域访问? 我不希望本系统支持跨域或者说对所有其他系统支持跨域,把这个*改成某个指定域就行了吧?
还是也需要在nginx里配置下add header?

3 回复

可能当时脑抽了,我删掉吧

我现在理解,如果其他系统发起了跨域请求,通过这种设置就是认为对所有系统开放了跨域权限。
应该默认不开放跨域权限才好吧,需要的话自己进行设置好了。
去掉这部分addheader,默认就是不支持跨域了吧

干掉了. 有专门的ActionFilter干跨域的事

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