我正在尝试在资源服务器上配置Swagger身份验证,以便可以针对我的授权服务器进行身份验证。
我将资源服务器和授权服务器分开。它们都在我的本地主机上以不同的端口启动。
每当我尝试“授权”时,都会出现CORS问题。
我从另一个网站分叉了一个项目,用作我的测试依据。下面是分叉的项目。
https://github.com/cbriarnold/oauth2-spring-boot-2.0.2
要进行测试,一旦授权服务器和资源服务器都启动,请执行以下操作:
如果打开了开发人员工具,您将看到CORS错误
从原点“ http://localhost:8081/oauth/token/”到“ http://localhost:8083”的提取操作已被CORS策略阻止:对预检请求的响应未通过访问控制检查:预检请求不允许重定向
与上述CORS错误相关的http状态代码为302。
因此,我修改了源代码以尝试允许allowAll(从安全角度来看,我知道这是不希望的,但我只是想弄清楚发生了什么事情)。我将收到相同的CORS错误,但HTTPS状态码为403。该代码位于以下分支。
https://github.com/cbriarnold/oauth2-spring-boot-2.0.2/tree/permitAll
有什么建议吗?
答案 0 :(得分:0)
我认为您需要在控制器上添加@CrossOrigin(/*your hitting server*/)
这是一项chrome安全性检查,以查看您是否被允许与该服务器通信,它首先会发送一个选项请求,如果被允许,它会发送原始请求,该请求正在访问swagger
如果您想确定这是否是跨源问题,请尝试通过邮递员发送该请求,因为邮递员首先直接发送您的请求而没有选项请求