Move URL transform methods from ServerHttpResponse to ServerWebExchange
This commit moves `encodeUrl` and `registerUrlEncoder` from ServerHttpResponse to ServerWebExchange. It also renames `encodeUrl` to `transformUrl` and `registerUrlEncoder` to `addUrlTransformer` to make it clearer that these methods do not perform actual URL encodings (i.e. they do not replaceinvalid characters). The `add` prefix (instead of `register`) makes it clearer that each function is added in addition to the previous one. Issue: SPR-15924
This commit is contained in:
@@ -289,9 +289,9 @@ public class RedirectView extends AbstractUrlBasedView {
|
||||
* @param exchange current exchange
|
||||
*/
|
||||
protected Mono<Void> sendRedirect(String targetUrl, ServerWebExchange exchange) {
|
||||
String transformedUrl = (isRemoteHost(targetUrl) ? targetUrl : exchange.transformUrl(targetUrl));
|
||||
ServerHttpResponse response = exchange.getResponse();
|
||||
String encodedURL = (isRemoteHost(targetUrl) ? targetUrl : response.encodeUrl(targetUrl));
|
||||
response.getHeaders().setLocation(URI.create(encodedURL));
|
||||
response.getHeaders().setLocation(URI.create(transformedUrl));
|
||||
response.setStatusCode(getStatusCode());
|
||||
return Mono.empty();
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@ public class RequestContext {
|
||||
*/
|
||||
public String getContextUrl(String relativeUrl) {
|
||||
String url = StringUtils.applyRelativePath(getContextPath() + "/", relativeUrl);
|
||||
return getExchange().getResponse().encodeUrl(url);
|
||||
return getExchange().transformUrl(url);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -220,7 +220,7 @@ public class RequestContext {
|
||||
String url = StringUtils.applyRelativePath(getContextPath() + "/", relativeUrl);
|
||||
UriTemplate template = new UriTemplate(url);
|
||||
url = template.expand(params).toASCIIString();
|
||||
return getExchange().getResponse().encodeUrl(url);
|
||||
return getExchange().transformUrl(url);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user