public Object run()

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;
    }