|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2020 the original author or authors. |
|
|
|
|
* Copyright 2002-2022 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. |
|
|
|
@ -75,6 +75,9 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
@@ -75,6 +75,9 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
|
|
|
|
|
|
|
|
|
private URI uri; |
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
|
private String contextPath; |
|
|
|
|
|
|
|
|
|
private final HttpHeaders headers = new HttpHeaders(); |
|
|
|
|
|
|
|
|
|
private final MultiValueMap<String, HttpCookie> cookies = new LinkedMultiValueMap<>(); |
|
|
|
@ -90,6 +93,7 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
@@ -90,6 +93,7 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
|
|
|
|
this.exchange = other.exchange(); |
|
|
|
|
this.methodName = other.methodName(); |
|
|
|
|
this.uri = other.uri(); |
|
|
|
|
this.contextPath = other.requestPath().contextPath().value(); |
|
|
|
|
this.headers.addAll(other.headers().asHttpHeaders()); |
|
|
|
|
this.cookies.addAll(other.cookies()); |
|
|
|
|
this.attributes.putAll(other.attributes()); |
|
|
|
@ -110,6 +114,12 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
@@ -110,6 +114,12 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
|
|
|
|
return this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public ServerRequest.Builder contextPath(@Nullable String contextPath) { |
|
|
|
|
this.contextPath = contextPath; |
|
|
|
|
return this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public ServerRequest.Builder header(String headerName, String... headerValues) { |
|
|
|
|
for (String headerValue : headerValues) { |
|
|
|
@ -177,7 +187,7 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
@@ -177,7 +187,7 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
|
|
|
|
@Override |
|
|
|
|
public ServerRequest build() { |
|
|
|
|
ServerHttpRequest serverHttpRequest = new BuiltServerHttpRequest(this.exchange.getRequest().getId(), |
|
|
|
|
this.methodName, this.uri, this.headers, this.cookies, this.body); |
|
|
|
|
this.methodName, this.uri, this.contextPath, this.headers, this.cookies, this.body); |
|
|
|
|
ServerWebExchange exchange = new DelegatingServerWebExchange( |
|
|
|
|
serverHttpRequest, this.attributes, this.exchange, this.messageReaders); |
|
|
|
|
return new DefaultServerRequest(exchange, this.messageReaders); |
|
|
|
@ -204,13 +214,13 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
@@ -204,13 +214,13 @@ class DefaultServerRequestBuilder implements ServerRequest.Builder {
|
|
|
|
|
|
|
|
|
|
private final Flux<DataBuffer> body; |
|
|
|
|
|
|
|
|
|
public BuiltServerHttpRequest(String id, String method, URI uri, HttpHeaders headers, |
|
|
|
|
MultiValueMap<String, HttpCookie> cookies, Flux<DataBuffer> body) { |
|
|
|
|
public BuiltServerHttpRequest(String id, String method, URI uri, @Nullable String contextPath, |
|
|
|
|
HttpHeaders headers, MultiValueMap<String, HttpCookie> cookies, Flux<DataBuffer> body) { |
|
|
|
|
|
|
|
|
|
this.id = id; |
|
|
|
|
this.method = method; |
|
|
|
|
this.uri = uri; |
|
|
|
|
this.path = RequestPath.parse(uri, null); |
|
|
|
|
this.path = RequestPath.parse(uri, contextPath); |
|
|
|
|
this.headers = HttpHeaders.readOnlyHttpHeaders(headers); |
|
|
|
|
this.cookies = unmodifiableCopy(cookies); |
|
|
|
|
this.queryParams = parseQueryParams(uri); |
|
|
|
|