private String path(final String resource, final Object... params) { final String path; final Escaper escaper = UrlEscapers.urlPathSegmentEscaper(); if (params.length == 0) { path = resource; } else { final List<String> encodedParams = Lists.newArrayList(); for (final Object param : params) { encodedParams.add(escaper.escape(param.toString())); } path = format(resource, encodedParams.toArray()); } return path; }
private String generateParamsUrl(Map<String, String> paramsMap) { StringBuilder paramsUrl = new StringBuilder(); for (Map.Entry<String, String> entry : paramsMap.entrySet()) { String val = entry.getValue(); if (paramsUrl.length() > 0) { paramsUrl.append("&"); } paramsUrl.append(entry.getKey()) .append("=") .append(UrlEscapers.urlPathSegmentEscaper().escape(val)); } return paramsUrl.toString(); }
@Override protected List<Network> execute(ListNetworksCmd command) { WebTarget webTarget = getBaseResource().path("/networks"); if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget .queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); List<Network> networks = webTarget.request().accept(MediaType.APPLICATION_JSON) .get(new GenericType<List<Network>>() { }); LOGGER.trace("Response: {}", networks); return networks; }
@Override protected ListVolumesResponse execute(ListVolumesCmd command) { WebTarget webTarget = getBaseResource().path("/volumes"); if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); return webTarget.request().accept(MediaType.APPLICATION_JSON).get(ListVolumesResponse.class); } }
@Override protected List<Service> execute(ListServicesCmd command) { WebTarget webTarget = getBaseResource().path("/services"); if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget .queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); List<Service> services = webTarget.request().accept(MediaType.APPLICATION_JSON) .get(new GenericType<List<Service>>() { }); LOGGER.trace("Response: {}", services); return services; }
@Override protected List<SwarmNode> execute(ListSwarmNodesCmd command) { WebTarget webTarget = getBaseResource().path("/nodes"); if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget .queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); List<SwarmNode> nodes = webTarget.request().accept(MediaType.APPLICATION_JSON) .get(new GenericType<List<SwarmNode>>() { }); LOGGER.trace("Response: {}", nodes); return nodes; } }
@Override protected List<Task> execute(ListTasksCmd command) { WebTarget webTarget = getBaseResource().path("/tasks"); if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget .queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); List<Task> tasks = webTarget.request().accept(MediaType.APPLICATION_JSON) .get(new GenericType<List<Task>>() { }); LOGGER.trace("Response: {}", tasks); return tasks; } }
public void testUrlPathSegmentEscaper() { UnicodeEscaper e = (UnicodeEscaper) urlPathSegmentEscaper(); assertPathEscaper(e); assertUnescaped(e, '+'); }
@Override protected List<Image> execute(ListImagesCmd command) { WebTarget webTarget = getBaseResource().path("/images/json"); webTarget = booleanQueryParam(webTarget, "all", command.hasShowAllEnabled()); if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } if (command.getImageNameFilter() != null) { webTarget = webTarget.queryParam("filter", urlPathSegmentEscaper().escape(command.getImageNameFilter())); } LOGGER.trace("GET: {}", webTarget); List<Image> images = webTarget.request().accept(MediaType.APPLICATION_JSON).get(new GenericType<List<Image>>() { }); LOGGER.trace("Response: {}", images); return images; }
@Override protected AbstractCallbackNotifier<Event> callbackNotifier(EventsCmd command, ResultCallback<Event> resultCallback) { WebTarget webTarget = getBaseResource().path("/events").queryParam("since", command.getSince()) .queryParam("until", command.getUntil()); if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget .queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); return new GETCallbackNotifier<Event>(new JsonStreamProcessor<Event>(Event.class), resultCallback, webTarget.request()); } }
@Override protected List<Container> execute(ListContainersCmd command) { WebTarget webTarget = getBaseResource().path("/containers/json").queryParam("since", command.getSinceId()) .queryParam("before", command.getBeforeId()); webTarget = booleanQueryParam(webTarget, "all", command.hasShowAllEnabled()); webTarget = booleanQueryParam(webTarget, "size", command.hasShowSizeEnabled()); if (command.getLimit() != null && command.getLimit() >= 0) { webTarget = webTarget.queryParam("limit", String.valueOf(command.getLimit())); } if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget .queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); List<Container> containers = webTarget.request().accept(MediaType.APPLICATION_JSON) .get(new GenericType<List<Container>>() { }); LOGGER.trace("Response: {}", containers); return containers; }
private void xss(final Env env) { Escaper ufe = UrlEscapers.urlFragmentEscaper(); Escaper fpe = UrlEscapers.urlFormParameterEscaper(); Escaper pse = UrlEscapers.urlPathSegmentEscaper(); Escaper html = HtmlEscapers.htmlEscaper(); env.xss("urlFragment", ufe::escape) .xss("formParam", fpe::escape) .xss("pathSegment", pse::escape) .xss("html", html::escape); }
/** * Encode path params. For example, if the path of an operation is {@code /over/there/{pathParam}/tail}, this method * should be used to encoded {@code {pathParam}}. In order to keep the path structure, the slash '/' will be encoded * into {@code %2F} to avoid path matching problem. * * @see UrlEscapers#urlPathSegmentEscaper() * * @param pathParam the path param to be encoded * @return the encoded path param */ public static String encodePathParam(String pathParam) { return UrlEscapers.urlPathSegmentEscaper().escape(pathParam); }
UrlEscapers.urlPathSegmentEscaper().escape(lenientDecode(segment, UTF_8, false)); if (".".equals(normalized)) {
builder.append(UrlEscapers.urlPathSegmentEscaper().escape(pathSeg)).append(URI_PATH_SEPARATOR);
public static String encode(String pathPart) { // jenkins doesn't like the + for space, use %20 instead String escape = UrlEscapers.urlPathSegmentEscaper().escape(pathPart); return escape; }
/** * Encode the URL path segment. This method will also encode '?' and '/' characters in the provided segment. * * @param segment * @return */ public static String encodeSegment(String segment) { return UrlEscapers.urlPathSegmentEscaper().escape(segment); }
/** * Make the cache filename * * @param fileLocation normal file location * @return cache filename */ static private String makeCachePath(String fileLocation) { Escaper urlPathEscaper = UrlEscapers.urlPathSegmentEscaper(); fileLocation = fileLocation.replace('\\', '/'); // LOOK - use better normalization code eg Spring StringUtils String cachePath = urlPathEscaper.escape(fileLocation); return root + cachePath; }
public Optional<String> getRoutePrefix() { return Optional.ofNullable(routePrefix) .filter(StringUtils::isNotBlank) .map(val -> UrlEscapers.urlPathSegmentEscaper().escape(val)); }
private void xss(final Env env) { Escaper ufe = UrlEscapers.urlFragmentEscaper(); Escaper fpe = UrlEscapers.urlFormParameterEscaper(); Escaper pse = UrlEscapers.urlPathSegmentEscaper(); Escaper html = HtmlEscapers.htmlEscaper(); env.xss("urlFragment", ufe::escape) .xss("formParam", fpe::escape) .xss("pathSegment", pse::escape) .xss("html", html::escape); }