/** Convenience method: replaces spaces with "%20", builds a URI, and calls getPath(uri). */ public CloudStoragePath getPath(String uriInStringForm) { String escaped = UrlEscapers.urlFragmentEscaper().escape(uriInStringForm); return getPath(URI.create(escaped)); }
/** * Escape the path using {@link UrlEscapers#urlFragmentEscaper()}. * * Given: * * <pre>{@code * http://domain.com/404<h1>X</h1> {@literal ->} /404%3Ch1%3EX%3C/h1%3E * }</pre> * * @param escape True if we want to escape this path. * @return The request URL pathname. */ @Nonnull default String path(final boolean escape) { String path = route().path(); return escape ? UrlEscapers.urlFragmentEscaper().escape(path) : path; }
String escapedName = UrlEscapers.urlFragmentEscaper().escape(blobInfo.getName()); stPath.append(escapedName.replace("?", "%3F"));
public void testUrlFragmentEscaper() { UnicodeEscaper e = (UnicodeEscaper) urlFragmentEscaper(); assertUnescaped(e, '+'); assertUnescaped(e, '/'); assertUnescaped(e, '?'); assertPathEscaper(e); } }
URL url = storage.signUrl(BlobInfo.newBuilder(BUCKET_NAME1, blobName).build(), 14, TimeUnit.DAYS); String escapedBlobName = UrlEscapers.urlFragmentEscaper().escape(blobName); String stringUrl = url.toString(); String expectedUrl =
URL url = storage.signUrl(BlobInfo.newBuilder(BUCKET_NAME1, blobName).build(), 14, TimeUnit.DAYS); String escapedBlobName = UrlEscapers.urlFragmentEscaper().escape(blobName); String stringUrl = url.toString(); String expectedUrl =
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); }
TimeUnit.DAYS, Storage.SignUrlOption.withHostName("https://example.com")); String escapedBlobName = UrlEscapers.urlFragmentEscaper().escape(blobName); String stringUrl = url.toString(); String expectedUrl =
TimeUnit.DAYS, Storage.SignUrlOption.withHostName("https://example.com")); String escapedBlobName = UrlEscapers.urlFragmentEscaper().escape(blobName); String stringUrl = url.toString(); String expectedUrl =
storage.signUrl(BlobInfo.newBuilder(BUCKET_NAME1, blobName).build(), 14, TimeUnit.DAYS); String escapedBlobName = UrlEscapers.urlFragmentEscaper().escape(blobName).replace("?", "%3F"); String stringUrl = url.toString(); String expectedUrl =
Storage.SignUrlOption.withHostName("https://example.com")); String escapedBlobName = UrlEscapers.urlFragmentEscaper().escape(blobName).replace("?", "%3F"); String stringUrl = url.toString(); String expectedUrl =
String state = request.getParameter("state"); LOGGER.info("Incoming state: " + state); String encodedState = UrlEscapers.urlFragmentEscaper().escape(state); LOGGER.info("Encoded state: " + encodedState); location += "&state=" + encodedState;
/** * Escape URL fragments * * @param input * the input string * @return escaped input */ public static final String escape(String input) { return UrlEscapers.urlFragmentEscaper().escape(input); }
/** * Escape URL fragments * * @param input * the input string * @return escaped input */ public static final String escape(String input) { return UrlEscapers.urlFragmentEscaper().escape(input); }
/** Convenience method: replaces spaces with "%20", builds a URI, and calls getPath(uri). */ public CloudStoragePath getPath(String uriInStringForm) { String escaped = UrlEscapers.urlFragmentEscaper().escape(uriInStringForm); return getPath(URI.create(escaped)); }
/** Constructor. */ public TemplatedURLBuilder() { paramEscaper = UrlEscapers.urlFormParameterEscaper(); fragmentEscaper = UrlEscapers.urlFragmentEscaper(); pathEscaper = UrlEscapers.urlPathSegmentEscaper(); }
@SuppressWarnings("unchecked") @Override public <R extends HttpRequest> R bindToRequest(R request, Object input) { String encodedAndNewlineDelimited = Joiner.on('\n').join( transform(Iterable.class.cast(input), urlFragmentEscaper().asFunction())); Payload payload = Payloads.newStringPayload(encodedAndNewlineDelimited); payload.getContentMetadata().setContentType(TEXT_PLAIN); return (R) request.toBuilder().payload(payload).build(); } }
/** Constructor. */ public TemplatedBodyBuilder() { method = "POST"; mimeType ="text/plain"; paramEscaper = UrlEscapers.urlFormParameterEscaper(); fragmentEscaper = UrlEscapers.urlFragmentEscaper(); pathEscaper = UrlEscapers.urlPathSegmentEscaper(); xmlAttributeEscaper = XmlEscapers.xmlAttributeEscaper(); xmlContentEscaper = XmlEscapers.xmlContentEscaper(); }
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); }
public void testUrlFragmentEscaper() { UnicodeEscaper e = (UnicodeEscaper) urlFragmentEscaper(); assertUnescaped(e, '+'); assertUnescaped(e, '/'); assertUnescaped(e, '?'); assertPathEscaper(e); } }