在我的设置中,我在zuul网关后面有一个服务,配置有Security;我的客户端是一个简单的网站,对网关执行AJAX请求。
我在服务控制器中的端点上放置了交叉原产地注释,因此直接对服务传递执行请求,将请求指向网关,结果是我的选项中有401个错误-请求。
看起来带有授权头的请求没有到达Security,因为现在不允许这个头。
目前,我扩展了WebSecurityConfigurerAdapter以允许所有选项-请求。
编辑:问题:我如何配置Security,使其不要求选项-请求的身份验证?
EDIT2:我用相关代码创建了一个要旨:
hello.js,index.htmlWebSecurityonfig.java,SimpleCORSFilter.java,GatewayApp.javaContactController.javaEDIT2:在收集了更多关于预飞行和Spring (安全)选项的信息后,问题似乎来自Security。
我们使用一个承载令牌来授权客户端,所以浏览器向服务器发送一个选项-飞行前请求。服务器由Security保护,它找不到有效的授权头,因此返回401未经授权
发布于 2018-06-06 11:18:05
您必须在CrossOrigin注释中指定允许的来源。
@CrossOrigin(origins = "http://allowed-domain.com")
这里有一个例子:https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
发布于 2018-06-07 09:12:44
我知道我的答案有点离题,但我通常处理这个问题的方式是使用http服务器(比如nginx)。此服务器是后端或前端上的前端请求和重定向请求(因此,从浏览器的角度来看,所有服务器都在同一个域中)。
https://stackoverflow.com/questions/50717857
复制相似问题