使用过期令牌发出请求时,响应中不存在Access-Control-Allow-Origin(CORS)标头

约翰·德弗雷尔

我正在使用spring-security-oauth2构建应用程序。总的来说,一切正常,我使用创建的简单API拥有三个独立的客户端。所有客户端应用程序都从不同的域调用API。所有的应用程序都可以使用客户端证书授予来注册成员,然后获得密码授予访问令牌和刷新令牌。

但是,对于所有三个客户端,当使用过期的访问令牌发送请求时,来自资源服务器的响应不包括Access-Control-Allow-Origin标头。对于hal-browser和angular应用程序来说,这是一个问题,因为它们依赖于具有Access-Control-Allow-Origin标头的响应。

在过期的令牌响应中包括Access-Control-Allow-Origin标头的新方式是什么?

我有一个过滤器,它在zuul网关上添加了以下标头,但是如果请求的访问令牌已过期,则该过滤器永远不会被解雇。

    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE, HEAD");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers",
            "X-Requested-With, WWW-Authenticate, Authorization, Origin, Content-Type, Version");
    response.setHeader("Access-Control-Expose-Headers",
            "X-Requested-With, WWW-Authenticate, Authorization, Origin, Content-Type");
约翰·德弗雷尔

深入研究Spring代码后,事实证明此问题是由过滤器执行顺序引起的。首先调用OAuth过滤器,并引发InvalidAccessToken异常,从而阻止我的CORS过滤器运行,并添加必要的Acccess-Control-Allow-Origin标头。

添加注释

@Order(Ordered.HIGHEST_PRECEDENCE)

到我的CORS过滤器就成功了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

请求的资源错误中不存在“ Access-Control-Allow-Origin”标头

尽管选项响应中出现“ Access-Control-Allow-Origin”标头,stilll却出现cors错误

GO:CORS-Http状态503-请求的资源上不存在“ Access-Control-Allow-Origin”标头

WebSockets请求中的请求资源上不存在“ Access-Control-Allow-Origin”标头

CORS问题-所请求的资源上没有“ Access-Control-Allow-Origin”标头

被CORS策略阻止:不允许请求标头字段access-control-allow-origin

春季-Resteasy-Cors Double Access-Control-Allow-Origin标头响应

CORS政策:ionic 2中的请求资源上不存在“ Access-Control-Allow-Origin”标头

Wikipedia API响应中缺少CORS标头“ Access-Control-Allow-Origin”

Javascript CORS请求,不存在带有200状态代码的“ Access-Control-Allow-Origin”标头

Tomcat端点CORS策略响应,没有“ Access-Control-Allow-Origin”标头

React组件已被CORS策略阻止:请求的资源上不存在“ Access-Control-Allow-Origin”标头

从源对XMLHttpRequest的访问已被CORS策略阻止:请求的资源上不存在“ Access-Control-Allow-Origin”标头

尽管标头从那里开始,但CORS标头“ Access-Control-Allow-Origin”丢失

进行预检请求时是否需要Access-Control-Allow-Origin CORS标头?

CORS问题:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

跨域请求被阻止:&原因:缺少CORS标头'Access-Control-Allow-Origin'

keycloak 中请求的资源上不存在“Access-Control-Allow-Origin”标头

不允许多个 CORS 标头“Access-Control-Allow-Origin”/缺少 CORS 标头“Access-Control-Allow-Origin”)

Amazon S3 奇怪的 CORS 行为:请求的资源上不存在“Access-Control-Allow-Origin”标头

CORS – 跨域请求被阻止 – 'Access-Control-Allow-Origin' 标头包含无效值

错误:CORS 政策:ionic 4 中不存在“Access-Control-Allow-Origin”标头

反应使 axios 获取,返回错误:CORS 策略:请求的资源上不存在“Access-Control-Allow-Origin”标头

CORS 策略已阻止在“来自源”的 XMLHttpRequest 访问:请求中不存在“Access-Control-Allow-Origin”标头

当 Access-Control-Allow-Origin 标头不存在时,NGINX CORS 策略失败,但在标头存在时将其设置多次

请求的资源(AWS、API 网关、S3、CORS)上不存在“Access-Control-Allow-Origin”标头

django-cors-headers 不起作用:请求的资源上不存在“Access-Control-Allow-Origin”标头

获取 CORS 错误而不是错误 500(不存在“Access-Control-Allow-Origin”标头)

如何解决nodejs中的CORS错误“不存在'Access-Control-Allow-Origin'标头”?