gpt4 book ai didi

java - 在运行时动态地将 CORS 映射添加到 Rest Controller

转载 作者:行者123 更新时间:2023-11-30 06:23:38 39 4
gpt4 key购买 nike

你好!我是 Spring Boot 的初学者。我有一个简单的 Java Spring Boot 应用程序,它使用 Rest Controller 。某些 Controller 的端点会暴露给 CORS 请求。我发现可以通过在方法上方添加 @CrossOrigin(origins ="..") 注释来允许 CORS 请求。我的问题是,我目前不知道所有起源,并且必须稍后在 Spring Boot 应用程序运行时添加其中一些。是否可以有一种方法来手动将新的原始地址添加到我的 Rest Controller 的某些端点?例如。在我的 Rest Controller 中拥有一个端点,允许特定用户(例如管理员)将新的 cors-origins 添加到 Rest 端点?如果是:请举一个简单的例子。

最佳答案

我认为通过实现您自己的org.springframework.web.cors.CorsProcessor这是可能的。看看他 org.springframework.web.filter.CorsFilter 的实现可以使用您的自定义配置 CorsProcessor通过方法public void setCorsProcessor(CorsProcessor processor) .

然后我建议实现您自己的CorsProcessor并在方法 process 中处理您的自定义规则。

或者另一种选择是设置您自己的 CorsConfigurationSource在你的 Spring 安全配置中。例如

@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().configurationSource(new CustomConfigSource());
}

CorsConfigurationSource提供了一个方法CorsConfiguration getCorsConfiguration(HttpServletRequest request);您可以在其中处理特定的 CORS 处理。

关于java - 在运行时动态地将 CORS 映射添加到 Rest Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47652895/

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