Skip to content

Commit

Permalink
Fix wrong document about RequestHeaderArgumentResolver
Browse files Browse the repository at this point in the history
Also test is added to verify that.

Signed-off-by: Yanming Zhou <[email protected]>

See gh-34230
  • Loading branch information
quaff authored and rstoyanchev committed Jan 15, 2025
1 parent 7d84427 commit a8c5885
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -940,7 +940,7 @@ method parameters:
| `@RequestHeader`
| Add a request header or multiple headers. The argument may be a `Map<String, ?>` or
`MultiValueMap<String, ?>` with multiple headers, a `Collection<?>` of values, or an
individual value. Type conversion is supported for non-String values. This overrides
individual value. Type conversion is supported for non-String values. This does not override
the annotation's `headers` attribute.

| `@PathVariable`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -23,6 +23,7 @@
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.service.annotation.GetExchange;
import org.springframework.web.service.annotation.HttpExchange;

import static org.assertj.core.api.Assertions.assertThat;

Expand All @@ -32,6 +33,7 @@
*
* @author Olga Maciaszek-Sharma
* @author Rossen Stoyanchev
* @author Yanming Zhou
*/
class RequestHeaderArgumentResolverTests {

Expand All @@ -49,6 +51,12 @@ void header() {
assertRequestHeaders("id", "test");
}

@Test
void doesNotOverrideAnnotationHeaders() {
this.service.executeWithAnnotationHeaders("test");
assertRequestHeaders("id", "default", "test");
}

private void assertRequestHeaders(String key, String... values) {
List<String> actualValues = this.client.getRequestValues().getHeaders().get(key);
if (ObjectUtils.isEmpty(values)) {
Expand All @@ -65,6 +73,9 @@ private interface Service {
@GetExchange
void execute(@RequestHeader String id);

@HttpExchange(method = "GET", headers = "id=default")
void executeWithAnnotationHeaders(@RequestHeader String id);

}

}

0 comments on commit a8c5885

Please sign in to comment.