public static String getReciprocalServletUrl(final URI baseUrl, final ApplicationId applicationId, final String callbackUrl, final String actionParamValue, final String actionParamValue2) { final URI enableOAuthURL = URIUtil.uncheckedConcatenate(baseUrl, ServletPathConstants.APPLINKS_CONFIG_SERVLET_PATH + "/oauth/outbound/apl-2lo/" + applicationId + "?callback=" + callbackUrl + "&" + ConfigureOutgoingTwoLeggedOAuthReciprocalServlet.ENABLE_OUTGOING_2LO_AUTHENTICATION_PARAMETER + "=" + actionParamValue + "&" + ConfigureOutgoingTwoLeggedOAuthReciprocalServlet.ENABLE_OUTGOING_2LOI_AUTHENTICATION_PARAMETER + "=" + actionParamValue2); return enableOAuthURL.toString(); }
public URI getUrl() { return URIUtil.copyOf(url); }
@HtmlSafe public URI getAuthorisationURI(final URI callback) { return URIUtil.uncheckedToUri(getAuthorisationURI().toString() + "&redirectUrl=" + utf8Encode(Preconditions.checkNotNull(callback))); }
/** * ONLY to be used if the caller is <strong>certain</strong> that the base and path will form a valid URI when concatenated. */ public static URI uncheckedConcatenateAndToUri(final String base, final String... paths) { return uncheckedToUri(concatenate(base, paths)); }
private String createRedirectURL(final HttpServletRequest request, final ApplicationLink link) throws IOException { final URI remoteDisplayUrl = (!StringUtils.isEmpty(request.getParameter(HOST_URL_PARAM))) ? URI.create(request.getParameter(HOST_URL_PARAM)) : link.getDisplayUrl(); // URL pointing back to ourselves. The peer will append: "&action=[ENABLE|DISABLE]&result=[success|failure][&message=ErrorDescription] final String callbackUrl = URIUtil.uncheckedConcatenate(RequestUtil.getBaseURLFromRequest(request, internalHostApplication.getBaseUrl()), request.getServletPath(), request.getPathInfo()) + "?" + HOST_URL_PARAM + "=" + URIUtil.utf8Encode(remoteDisplayUrl); final URI targetBase = URIUtil.uncheckedConcatenate( remoteDisplayUrl, TrustedAppsAuthenticationProviderPluginModule.CONSUMER_SERVLET_LOCATION_UAL + internalHostApplication.getId()); return String.format("%s?callbackUrl=%s&action=%s", targetBase.toString(), URIUtil.utf8Encode(callbackUrl), getAction(request).name()); }
/** * Equivalent to {@code URLEncoder.encode(uri.toASCIIString(), "UTF-8")} */ public static String utf8Encode(final URI uri) { return utf8Encode(uri.toASCIIString()); }
private URI getOriginalUrl(final HttpServletRequest request) { final String originalUrl = new StringBuilder(applicationProperties.getBaseUrl(UrlMode.ABSOLUTE)) .append(request.getServletPath()) .append(request.getPathInfo()) .append(sanitiseQueryString(request)) .toString(); return URIUtil.uncheckedToUri(originalUrl); }
public String uriEncode(final String url) { return URIUtil.encodeWithinQuery(url); }
/** * @param base base * @param paths paths * @return concatenated URI * @throws URISyntaxException if the resulting URI is invalid * @deprecated use {@link Uris#concatenate(URI, String...)} instead */ public static URI concatenate(final URI base, final String... paths) throws URISyntaxException { return new URI(concatenate(base.toASCIIString(), paths)); }
public static String concatenate(final String base, final String... paths) { return StringUtils.stripEnd(base, "/") + removeRedundantSlashes("/" + StringUtils.join(paths, "/")); }
@HtmlSafe public URI getAuthorisationURI() { final HttpServletRequest request = CurrentContext.getHttpServletRequest(); URI baseUrl; if (request != null) { baseUrl = RequestUtil.getBaseURLFromRequest(request, hostApplication.getBaseUrl()); } else { baseUrl = hostApplication.getBaseUrl(); } return URIUtil.uncheckedConcatenate(baseUrl, "/plugins/servlet/applinks/oauth/login-dance/authorize?applicationLinkID=" + utf8Encode(applicationLink.getId().get())); }
private String addUsernameToUrl(String url) { if (url.contains("?")) { return new StringBuilder().append(url).append("&").append(XOAUTH_REQUESTOR_ID).append("=").append(utf8Encode(username)).toString(); } else { return new StringBuilder().append(url).append("?").append(XOAUTH_REQUESTOR_ID).append("=").append(utf8Encode(username)).toString(); } } }
private URI getOriginalUrl(final HttpServletRequest request) { final String originalUrl = new StringBuilder(applicationProperties.getBaseUrl(UrlMode.ABSOLUTE)) .append(request.getServletPath()) .append(request.getPathInfo()) .append(sanitiseQueryString(request)) .toString(); return URIUtil.uncheckedToUri(originalUrl); }
/** * ONLY to be used if the caller is <strong>certain</strong> that the base and path will form a valid URI when concatenated. */ public static URI uncheckedConcatenateAndToUri(final String base, final String... paths) { return uncheckedToUri(concatenate(base, paths)); }
public String uriEncode(final String url) { return URIUtil.encodeWithinQuery(url); }
public static URI concatenate(final URI base, final URI... paths) { try { final String[] pathStrings = Iterables.toArray( Lists.transform(Lists.newArrayList(paths), new Function<URI, String>() { public String apply(@Nullable URI from) { return from.toASCIIString(); } }), String.class); return concatenate(base, pathStrings); } catch (URISyntaxException e) { throw new RuntimeException("Failed to concatenate URIs", e); } }
/** * @param base base * @param paths paths * @return concatenated URI * @deprecated use {@link Uris#concatenate(String, String...)} instead */ public static String concatenate(final String base, final String... paths) { return StringUtils.stripEnd(base, "/") + removeRedundantSlashes("/" + StringUtils.join(paths, "/")); }
public static ServiceProvider getServiceProvider(final URI rpcUrl, final URI displayUrl) { final URI requestTokenUri = uncheckedConcatenate(rpcUrl, "/plugins/servlet/oauth/request-token"); final URI authorizeTokenUri = uncheckedConcatenate(displayUrl, "/plugins/servlet/oauth/authorize"); final URI accessTokenUri = uncheckedConcatenate(rpcUrl, "/plugins/servlet/oauth/access-token"); return new ServiceProvider(requestTokenUri, authorizeTokenUri, accessTokenUri); }
private boolean isRpcUrlValid(final URI url, final URI rpcUrl, final String username, final String password) throws ResponseException { // We send the rpcUrl parameter in a query parameter. For pre-3.4 versions of the REST resource, we also // send it in the path. // TODO If we know the server is using applinks 3.4, the rpcUrl path parameter can be empty String pathUrl = getUrlFor(URIUtil.uncheckedConcatenate(url, RestUtil.REST_APPLINKS_URL), AuthenticationResource.class).rpcUrlIsReachable(internalHostApplication.getId().get(), rpcUrl, null).toString(); String urlWithQuery = pathUrl + "?url=" + URIUtil.utf8Encode(rpcUrl); final Request request = requestFactory.createRequest(Request.MethodType.GET, urlWithQuery); request.addBasicAuthentication(url.getHost(), username, password); final Holder<Boolean> rpcUrlValid = new Holder<Boolean>(false); request.execute(new ResponseHandler<Response>() { public void handle(final Response restResponse) throws ResponseException { if (restResponse.isSuccessful()) { rpcUrlValid.set(true); } } }); return rpcUrlValid.get(); } }
private String createRedirectUrl(final HttpServletRequest req, final boolean success, final String message) { String callbackUrl = getRequiredParameter(req, CALLBACK_PARAM); if (callbackUrl.indexOf("?") == -1) { callbackUrl += "?"; } String redirectUrl = String.format("%s&" + SUCCESS_PARAM + "=%s", callbackUrl, success); if (!StringUtils.isBlank(message)) { redirectUrl += "&" + MESSAGE_PARAM + "=" + URIUtil.utf8Encode(message); } return redirectUrl; }