Expose request id at the ServerHttpRequest level
Hiding it (at AbstractServerHttpRequest) complicates matters since requests are often mutated and decorated, plus it's also possible to implement the interface directly (we've one, albeit corner case). Issue: SPR-16966
This commit is contained in:
@@ -178,7 +178,7 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
||||
|
||||
@Override
|
||||
public ServerRequest build() {
|
||||
ServerHttpRequest serverHttpRequest = new BuiltServerHttpRequest(
|
||||
ServerHttpRequest serverHttpRequest = new BuiltServerHttpRequest(this.exchange.getRequest().getId(),
|
||||
this.methodName, this.uri, this.headers, this.cookies, this.body);
|
||||
ServerWebExchange exchange = new DelegatingServerWebExchange(
|
||||
serverHttpRequest, this.exchange, this.messageReaders);
|
||||
@@ -190,6 +190,8 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
||||
|
||||
private static final Pattern QUERY_PATTERN = Pattern.compile("([^&=]+)(=?)([^&]+)?");
|
||||
|
||||
private final String id;
|
||||
|
||||
private final String method;
|
||||
|
||||
private final URI uri;
|
||||
@@ -204,9 +206,10 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
||||
|
||||
private final Flux<DataBuffer> body;
|
||||
|
||||
public BuiltServerHttpRequest(String method, URI uri, HttpHeaders headers,
|
||||
public BuiltServerHttpRequest(String id, String method, URI uri, HttpHeaders headers,
|
||||
MultiValueMap<String, HttpCookie> cookies, Flux<DataBuffer> body) {
|
||||
|
||||
this.id = id;
|
||||
this.method = method;
|
||||
this.uri = uri;
|
||||
this.path = RequestPath.parse(uri, null);
|
||||
@@ -241,6 +244,11 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
||||
return queryParams;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMethodValue() {
|
||||
return this.method;
|
||||
|
||||
Reference in New Issue
Block a user