public static SlingUriBuilder createFrom()

in src/main/java/org/apache/sling/api/uri/SlingUriBuilder.java [161:183]


    public static SlingUriBuilder createFrom(@NotNull org.apache.sling.api.SlingHttpServletRequest request) {
        @NotNull ResourceResolver resourceResolver = request.getResourceResolver();
        @NotNull
        SlingUriBuilder uriBuilder = createFrom(request.getRequestPathInfo())
                .setResourceResolver(resourceResolver)
                .setScheme(request.getScheme())
                .setHost(request.getServerName())
                .setPort(request.getServerPort())
                .setQuery(request.getQueryString());

        // SLING-11347 - check if the original request was using a mapped path
        @Nullable String resourcePath = uriBuilder.getResourcePath();
        if (resourcePath != null) {
            @NotNull String mappedResourcePath = resourceResolver.map(request, resourcePath);
            if (!resourcePath.equals(mappedResourcePath)
                    && request.getPathInfo().startsWith(mappedResourcePath)) {
                // mapped path is different from the resource path and
                // the request path was the mapped path, so switch to it
                uriBuilder.setResourcePath(mappedResourcePath);
            }
        }
        return uriBuilder;
    }