gpt4 book ai didi

spring - 如何将 CORS header 添加到 BasicErrorController 呈现的 Spring 错误页面?

转载 作者:行者123 更新时间:2023-12-05 04:11:01 25 4
gpt4 key购买 nike

我有一个由 Spring Boot REST MVC API 应用程序(spring boot 版本 1.5.2)提供服务的单页客户端。

我的应用程序通过 Auth0 JWT token 进行保护。当一切正常时,响应的 CORS header 由 ServletFilter 提供,它被配置为设置安全性的一部分:

  protected void configure(HttpSecurity http) throws Exception {
...
http.addFilterBefore(simpleCORSFilter(), Auth0AuthenticationFilter.class);
...
}

到目前为止,这似乎在我测试过的任何地方都有效——但它不起作用的一个地方是默认的 Spring 错误页面(路径“/error”,默认由 BasicErrorController 呈现)类)。

当我的服务方法中抛出异常时,错误页面会工作并在响应主体中将我想要的内容呈现为 JSON,但客户端应用程序无法访问 http 响应主体,因为响应缺少 CORS header 。

那么问题是:“如何将 CORS header 添加到错误页面”?

我是否应该从我的安全设置中删除 CORS 过滤器并在全局范围内更广泛地应用 CORS 过滤器?在哪里完成 - 我在 Spring 文档中找不到任何相关内容。

或者我应该编写一个自定义错误 Controller 吗?文档中自定义错误 Controller 的唯一示例似乎只允许您返回一个字符串。

最佳答案

您可以为错误定义一个单独的 Controller ,并使用

允许跨源到它
@CrossOrigin("*")

关于spring - 如何将 CORS header 添加到 BasicErrorController 呈现的 Spring 错误页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43463735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com