More qualified "request-id" header in WebTestClient
Issue: SPR-15501
This commit is contained in:
parent
7f616c216b
commit
5ac7955de9
|
@ -74,7 +74,7 @@ class ExchangeMutatingWebFilter implements WebFilter {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Function<ServerWebExchange, ServerWebExchange> getMutatorFor(ServerWebExchange exchange) {
|
private Function<ServerWebExchange, ServerWebExchange> getMutatorFor(ServerWebExchange exchange) {
|
||||||
String id = WiretapConnector.getRequestId(exchange.getRequest().getHeaders());
|
String id = WiretapConnector.getRequestIdHeader(exchange.getRequest().getHeaders());
|
||||||
Function<ServerWebExchange, ServerWebExchange> mutator = this.perRequestMutators.remove(id);
|
Function<ServerWebExchange, ServerWebExchange> mutator = this.perRequestMutators.remove(id);
|
||||||
return mutator != null ? mutator : NO_OP_MUTATOR;
|
return mutator != null ? mutator : NO_OP_MUTATOR;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ import org.springframework.util.Assert;
|
||||||
*/
|
*/
|
||||||
class WiretapConnector implements ClientHttpConnector {
|
class WiretapConnector implements ClientHttpConnector {
|
||||||
|
|
||||||
public static final String REQUEST_ID_HEADER_NAME = "request-id";
|
public static final String REQUEST_ID_HEADER_NAME = "webtestclient-request-id";
|
||||||
|
|
||||||
|
|
||||||
private final ClientHttpConnector delegate;
|
private final ClientHttpConnector delegate;
|
||||||
|
@ -69,8 +69,7 @@ class WiretapConnector implements ClientHttpConnector {
|
||||||
})
|
})
|
||||||
.map(response -> {
|
.map(response -> {
|
||||||
WiretapClientHttpRequest wrappedRequest = requestRef.get();
|
WiretapClientHttpRequest wrappedRequest = requestRef.get();
|
||||||
String requestId = getRequestId(wrappedRequest.getHeaders());
|
String requestId = getRequestIdHeader(wrappedRequest.getHeaders());
|
||||||
Assert.notNull(requestId, "No request-id header");
|
|
||||||
WiretapClientHttpResponse wrappedResponse = new WiretapClientHttpResponse(response);
|
WiretapClientHttpResponse wrappedResponse = new WiretapClientHttpResponse(response);
|
||||||
ExchangeResult result = new ExchangeResult(wrappedRequest, wrappedResponse);
|
ExchangeResult result = new ExchangeResult(wrappedRequest, wrappedResponse);
|
||||||
this.exchanges.put(requestId, result);
|
this.exchanges.put(requestId, result);
|
||||||
|
@ -78,9 +77,9 @@ class WiretapConnector implements ClientHttpConnector {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getRequestId(HttpHeaders headers) {
|
public static String getRequestIdHeader(HttpHeaders headers) {
|
||||||
String requestId = headers.getFirst(REQUEST_ID_HEADER_NAME);
|
String requestId = headers.getFirst(REQUEST_ID_HEADER_NAME);
|
||||||
Assert.notNull(requestId, "No request-id header");
|
Assert.notNull(requestId, "No \"" + REQUEST_ID_HEADER_NAME + "\" header");
|
||||||
return requestId;
|
return requestId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +88,7 @@ class WiretapConnector implements ClientHttpConnector {
|
||||||
*/
|
*/
|
||||||
public ExchangeResult claimRequest(String requestId) {
|
public ExchangeResult claimRequest(String requestId) {
|
||||||
ExchangeResult result = this.exchanges.get(requestId);
|
ExchangeResult result = this.exchanges.get(requestId);
|
||||||
Assert.notNull(result, "No match for request with id [" + requestId + "]");
|
Assert.notNull(result, "No match for request with header " + REQUEST_ID_HEADER_NAME + "=" + requestId);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,7 @@ public interface ReactiveHttpOutputMessage extends HttpMessage {
|
||||||
* @param body the body content publisher
|
* @param body the body content publisher
|
||||||
* @return a {@link Mono} that indicates completion or error
|
* @return a {@link Mono} that indicates completion or error
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Mono<Void> writeWith(Publisher<? extends DataBuffer> body);
|
Mono<Void> writeWith(Publisher<? extends DataBuffer> body);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -151,7 +151,7 @@ public class WebHttpHandlerBuilder {
|
||||||
/**
|
/**
|
||||||
* Add the given filter(s).
|
* Add the given filter(s).
|
||||||
* @param filters the filter(s) to add
|
* @param filters the filter(s) to add
|
||||||
*/
|
that's */
|
||||||
public WebHttpHandlerBuilder filter(WebFilter... filters) {
|
public WebHttpHandlerBuilder filter(WebFilter... filters) {
|
||||||
if (!ObjectUtils.isEmpty(filters)) {
|
if (!ObjectUtils.isEmpty(filters)) {
|
||||||
this.filters.addAll(Arrays.asList(filters));
|
this.filters.addAll(Arrays.asList(filters));
|
||||||
|
|
Loading…
Reference in New Issue