spring-cloud/spring-cloud-gateway
CorsGatewayFilterApplicationListener Does Not Consider Host Predicate When Configuring Cors For Individual Routes
开放
#3,278 创建于 2024年2月26日
enhancementhelp wanted
仓库指标
- 星标
- (4,284 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
I am implementing CORS not on the global level, but on the individual routes level. For my predicates, I do not use the Path Predicate. I use the Host predicate to differentiate each id. In trying to add CORS to each id, I noticed that the CorsGatewayFilterApplicationListener.onApplicationEvent(RefreshRoutesEvent event) method only considers the path predicate.
Here is an example configuration to better illustrate my problem:
spring:
cloud:
gateway:
routes:
- id: host-a
uri: http://hostA
order: 0
predicates:
- Host=HostA
metadata:
cors:
allowedOrigins:
- OriginA
allowedMethods:
- GET
allowedHeaders: '*'
allowCredentials: true
- id: host-b
uri: http://hostB
order: 1
predicates:
- Host=HostB
metadata:
cors:
allowedOrigins:
- OriginB
allowedMethods:
- GET
allowedHeaders: '*'
allowCredentials: true
In the above example, the only allowed origin would be "OriginB" if I made a request to HostA since a Path predicate is not specified.