spring-cloud / spring-cloud/spring-cloud-gateway
Routes metadata keys are treated as case-insensitive when retrieved
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 4.9k
- Forks
- 3.5k
- Avg merge
- 20h 57m
- Merged PRs (30d)
- 8
Description
Describe the bug
cloudgatewayVersion = '4.3.0'
When retrieving route metadata in Spring Cloud Gateway, the keys appear to be matched in a case-insensitive manner. This causes unexpected results.
Sample
sample config:-
spring:
application:
name: gw
cloud:
gateway:
default-filters:
routes:
- id: route1
order: 1
uri: http://127.0.0.1:1010/
metadata:
customMetaData: abc
sample code:-
Route route = exchange.getAttribute(ServerWebExchangeUtils.GATEWAY_ROUTE_ATTR);
Map<String, Object> metaData = route.getMetadata();
metaData.get("customMetaData"). // returns null
The issue appears to be with GatewayServerWebfluxPropertiesMigrationListener. When using the new prefix, it works as expected : spring.cloud.gateway.server.webflux
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating GatewayServerWebfluxPropertiesMigrationListener and trace how route metadata from the old configuration prefix is converted into Route metadata. Reproduce the sample configuration and compare retrieval of customMetaData with the new spring.cloud.gateway.server.webflux prefix; done means metadata keys retain their case under the affected configuration path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring, spring-boot
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100