in src/main/java/org/apache/pulsar/manager/zuul/LocationHeaderRewritingFilter.java [78:108]
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
Route route = routeLocator.getMatchingRoute(
urlPathHelper.getPathWithinApplication(ctx.getRequest()));
if (route != null) {
Pair<String, String> lh = locationHeader(ctx);
if (lh != null) {
String location = lh.second();
URI originalRequestUri = UriComponentsBuilder
.fromHttpRequest(new ServletServerHttpRequest(ctx.getRequest()))
.build().toUri();
UriComponentsBuilder redirectedUriBuilder = UriComponentsBuilder
.fromUriString(location);
UriComponents redirectedUriComps = redirectedUriBuilder.build();
String modifiedLocation = redirectedUriBuilder
.scheme(scheme)
.host(host)
.port(port).replacePath(redirectedUriComps.getPath())
.queryParam("redirect", true)
.queryParam("redirect.scheme", redirectedUriComps.getScheme())
.queryParam("redirect.host", redirectedUriComps.getHost())
.queryParam("redirect.port", redirectedUriComps.getPort())
.toUriString();
lh.setSecond(modifiedLocation);
}
}
return null;
}