Example usage for org.apache.http.client.utils URIBuilder setParameter

List of usage examples for org.apache.http.client.utils URIBuilder setParameter

Introduction

In this page you can find the example usage for org.apache.http.client.utils URIBuilder setParameter.

Prototype

public URIBuilder setParameter(final String param, final String value) 

Source Link

Document

Sets parameter of URI query overriding existing value if set.

Usage

From source file:com.haulmont.idp.controllers.IdpController.java

@PostMapping(value = "/auth", produces = "application/json; charset=UTF-8")
@ResponseBody/*from  w w w  . ja v  a 2s  .  c o m*/
public AuthResponse authenticate(@RequestBody AuthRequest auth,
        @CookieValue(value = CUBA_IDP_COOKIE_NAME, defaultValue = "") String idpSessionCookie,
        HttpServletResponse response) {
    String serviceProviderUrl = auth.getServiceProviderUrl();

    if (!Strings.isNullOrEmpty(serviceProviderUrl)
            && !idpConfig.getServiceProviderUrls().contains(serviceProviderUrl)) {
        log.warn("Incorrect serviceProviderUrl {} passed, will be used default", serviceProviderUrl);
        serviceProviderUrl = null;
    }

    if (Strings.isNullOrEmpty(serviceProviderUrl)) {
        if (!idpConfig.getServiceProviderUrls().isEmpty()) {
            serviceProviderUrl = idpConfig.getServiceProviderUrls().get(0);
        } else {
            log.error("IDP property cuba.idp.serviceProviderUrls is not set");
            response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
            return null;
        }
    }

    Locale sessionLocale = null;
    if (globalConfig.getLocaleSelectVisible() && auth.getLocale() != null) {
        Map<String, Locale> availableLocales = globalConfig.getAvailableLocales();
        Locale requestedLocale = Locale.forLanguageTag(auth.getLocale());

        if (availableLocales.containsValue(requestedLocale)) {
            sessionLocale = requestedLocale;
        }
    }
    if (sessionLocale == null) {
        sessionLocale = messageTools.getDefaultLocale();
    }

    if (!Strings.isNullOrEmpty(idpSessionCookie)) {
        boolean loggedOut = idpService.logout(idpSessionCookie);

        if (loggedOut) {
            log.info("Logged out IDP session {}", idpSessionCookie);

            logoutCallbackInvoker.performLogoutOnServiceProviders(idpSessionCookie);
        }
    }

    IdpService.IdpLoginResult loginResult;
    try {
        loginResult = idpService.login(auth.getUsername(), passwordEncryption.getPlainHash(auth.getPassword()),
                sessionLocale, ImmutableMap.of(ClientType.class.getName(), ClientType.WEB.name()));
    } catch (LoginException e) {
        // remove auth cookie
        Cookie cookie = new Cookie(CUBA_IDP_COOKIE_NAME, "");
        cookie.setMaxAge(0);
        response.addCookie(cookie);

        log.warn("Unable to login user {}", auth.getUsername());
        return AuthResponse.failed("invalid_credentials");
    }

    if (loginResult.getSessionId() != null) {
        Cookie idpCookie = new Cookie(CUBA_IDP_COOKIE_NAME, loginResult.getSessionId());
        idpCookie.setMaxAge(idpConfig.getIdpCookieMaxAge());
        idpCookie.setHttpOnly(idpConfig.getIdpCookieHttpOnly());
        response.addCookie(idpCookie);
    }

    String serviceProviderRedirectUrl;
    try {
        URIBuilder uriBuilder = new URIBuilder(serviceProviderUrl);

        if ("client-ticket".equals(auth.getResponseType())) {
            uriBuilder.setFragment(CUBA_IDP_TICKET_PARAMETER + "=" + loginResult.getServiceProviderTicket());
        } else {
            uriBuilder.setParameter(CUBA_IDP_TICKET_PARAMETER, loginResult.getServiceProviderTicket());
        }

        serviceProviderRedirectUrl = uriBuilder.build().toString();
    } catch (URISyntaxException e) {
        return AuthResponse.failed("invalid_params");
    }

    log.info("Logged in IDP session with ticket {}, user: {}", loginResult.getServiceProviderTicket(),
            auth.getUsername());

    return AuthResponse.authenticated(serviceProviderRedirectUrl);
}

From source file:com.haulmont.idp.controllers.IdpController.java

@GetMapping(value = "/")
public String checkIdpSession(@RequestParam(value = "sp", defaultValue = "") String serviceProviderUrl,
        @RequestParam(value = "response_type", defaultValue = "server-ticket") String responseType,
        @CookieValue(value = CUBA_IDP_COOKIE_NAME, defaultValue = "") String idpSessionCookie,
        HttpServletResponse response) {/*from  w  w  w  . ja v a 2  s  .c  o m*/
    if (!Strings.isNullOrEmpty(serviceProviderUrl)
            && !idpConfig.getServiceProviderUrls().contains(serviceProviderUrl)) {
        log.warn("Incorrect serviceProviderUrl {} passed, will be used default", serviceProviderUrl);
        serviceProviderUrl = null;
    }

    if (Strings.isNullOrEmpty(serviceProviderUrl)) {
        if (!idpConfig.getServiceProviderUrls().isEmpty()) {
            serviceProviderUrl = idpConfig.getServiceProviderUrls().get(0);
        } else {
            log.error("IDP property cuba.idp.serviceProviderUrls is not set");
            response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
            return null;
        }
    }

    if (!Strings.isNullOrEmpty(idpSessionCookie)) {
        String serviceProviderTicket = idpService.createServiceProviderTicket(idpSessionCookie);
        if (serviceProviderTicket != null) {
            String serviceProviderRedirectUrl;
            try {
                URIBuilder uriBuilder = new URIBuilder(serviceProviderUrl);

                if (ResponseType.CLIENT_TICKET.getCode().equals(responseType)) {
                    uriBuilder.setFragment(CUBA_IDP_TICKET_PARAMETER + "=" + serviceProviderTicket);
                } else {
                    uriBuilder.setParameter(CUBA_IDP_TICKET_PARAMETER, serviceProviderTicket);
                }

                serviceProviderRedirectUrl = uriBuilder.build().toString();
            } catch (URISyntaxException e) {
                log.warn("Unable to compose redirect URL", e);

                response.setStatus(HttpStatus.BAD_REQUEST.value());
                return null;
            }

            try {
                response.sendRedirect(serviceProviderRedirectUrl);
            } catch (IOException e) {
                // do not log stacktrace here
                log.warn("Unable to send redirect to service provider URL", e.getMessage());
            }

            log.debug("New ticket {} created for already logged in user", serviceProviderTicket);

            return null;
        } else {
            log.debug("IDP session {} not found, login required", idpSessionCookie);
        }
    }

    // remove auth cookie
    Cookie cookie = new Cookie(CUBA_IDP_COOKIE_NAME, "");
    cookie.setMaxAge(0);
    response.addCookie(cookie);

    if (ResponseType.CLIENT_TICKET.getCode().equals(responseType)) {
        return "redirect:login.html" + "?response_type=" + ResponseType.CLIENT_TICKET.getCode() + "&sp="
                + URLEncodeUtils.encodeUtf8(serviceProviderUrl);
    }

    return "redirect:login.html?sp=" + URLEncodeUtils.encodeUtf8(serviceProviderUrl);
}

From source file:gov.medicaid.screening.dao.impl.MedicalPracticeLicenseDAOBean.java

/**
 * Performs a search for all possible results.
 *
 * @param criteria The search criteria./* www .j a v a  2  s  .  c o m*/
 * @param byName flag indicating it is a search by name.
 * @return the search result for licenses
 * @throws URISyntaxException if an error occurs while building the URL.
 * @throws ClientProtocolException if client does not support protocol used.
 * @throws IOException if an error occurs while parsing response.
 * @throws ParseException if an error occurs while parsing response.
 * @throws ServiceException for any other problems encountered
 */
private SearchResult<License> getAllResults(MedicalPracticeLicenseSearchCriteria criteria, boolean byName)
        throws URISyntaxException, ClientProtocolException, IOException, ParseException, ServiceException {

    DefaultHttpClient client = new DefaultHttpClient();

    URIBuilder builder = new URIBuilder(getSearchURL()).setPath("/BMP/DesktopModules/ServiceForm.aspx");
    String hostId = builder.toString();
    builder.setParameter("svid", "30").setParameter("mid", "176");

    HttpGet httpget = new HttpGet(builder.build());
    HttpResponse landing = client.execute(httpget);
    Document document = Jsoup.parse(EntityUtils.toString(landing.getEntity()));

    HttpPost httppost = new HttpPost(builder.build());

    HttpEntity entity = postForm(hostId, client, httppost,
            new String[][] {
                    { "__EVENTTARGET", byName ? "_ctl7_rblSearchOption_0" : "_ctl7_rblSearchOption_1" },
                    { "__EVENTARGUMENT", "" }, { "_ctl7:rblSearchOption", byName ? "Name" : "Specialty" },
                    { "__VIEWSTATE", document.select("#Form1 input[name=__VIEWSTATE]").first().val() } },
            true);

    document = Jsoup.parse(EntityUtils.toString(entity));
    httppost.releaseConnection();

    if (byName) {
        entity = postForm(hostId, client, httppost,
                new String[][] { { "__EVENTTARGET", "" }, { "__EVENTARGUMENT", "" },
                        { "_ctl7:cmdSearch", "Search" }, { "_ctl7:rblSearchOption", "Name" },
                        { "_ctl7:txtCity", Util.defaultString(criteria.getCity()) },
                        { "_ctl7:txtFirstName", Util.defaultString(criteria.getFirstName()) },
                        { "_ctl7:txtLastName", Util.defaultString(criteria.getLastName()) },
                        { "_ctl7:txtLicNbr", Util.defaultString(criteria.getIdentifier()) },
                        { "__VIEWSTATE", document.select("#Form1 input[name=__VIEWSTATE]").first().val() } },
                true);
    } else {

        String code = matchSpecialtyCode(criteria, document);
        entity = postForm(hostId, client, httppost,
                new String[][] { { "__EVENTTARGET", "" }, { "__EVENTARGUMENT", "" },
                        { "_ctl7:cmdSearchSpecialty", "Search" }, { "_ctl7:ddlbSpecialty", code },
                        { "_ctl7:rblSearchOption", "Specialty" },
                        { "_ctl7:txtSpecialtyCity", Util.defaultString(criteria.getCity()) },
                        { "_ctl7:txtSpecialtyZip", Util.defaultString(criteria.getZipcode()) },
                        { "__VIEWSTATE", document.select("#Form1 input[name=__VIEWSTATE]").first().val() } },
                true);
    }

    // licenses list
    List<License> licenseList = new ArrayList<License>();
    if (entity != null) {
        String result = EntityUtils.toString(entity);
        document = Jsoup.parse(result);
        Elements rows = document.select(
                "#_ctl7_grdSearchResults tr.TableItem, #_ctl7_grdSearchResults tr.TableAlternatingItem");
        for (Element row : rows) {
            String href = row.select("a[name=Hyperlink1]").first().attr("href");
            String city = row.select("td:eq(4)").text();

            String detailsLink = getSearchURL() + "/BMP/DesktopModules/" + href.replaceAll(" ", "%20");
            HttpGet detailsGet = new HttpGet(detailsLink);
            HttpResponse detailsResponse = client.execute(detailsGet);
            HttpEntity detailsEntity = detailsResponse.getEntity();
            if (detailsEntity != null) {
                Document details = Jsoup.parse(EntityUtils.toString(detailsEntity));
                licenseList.add(parseLicense(city, details));
            }
        }
    }

    SearchResult<License> result = new SearchResult<License>();
    result.setItems(licenseList);
    return result;
}

From source file:com.teradata.tempto.internal.hadoop.hdfs.WebHDFSClient.java

private URI buildUri(String path, String username, String operation, Pair<String, String>... parameters) {
    try {//from w  w  w .  j  a  v  a2s  .co m
        if (!path.startsWith("/")) {
            path = "/" + path;
        }
        URIBuilder uriBuilder = new URIBuilder().setScheme("http").setHost(nameNode.getHostText())
                .setPort(nameNode.getPort()).setPath("/webhdfs/v1" + checkNotNull(path))
                .setParameter("op", checkNotNull(operation)).setParameter("user.name", checkNotNull(username));

        for (Pair<String, String> parameter : parameters) {
            uriBuilder.setParameter(parameter.getKey(), parameter.getValue());
        }

        return uriBuilder.build();
    } catch (URISyntaxException e) {
        throw new RuntimeException("Could not create save file URI" + ", nameNode: " + nameNode + ", path: "
                + path + ", username: " + username);
    }
}

From source file:org.finra.herd.tools.uploader.UploaderWebClient.java

/**
 * Retrieves all versions for the specified business object data key.
 *
 * @param businessObjectDataKey the business object data key
 *
 * @return {@link org.finra.herd.model.api.xml.BusinessObjectDataVersions}
 * @throws URISyntaxException When error occurs while URI creation
 * @throws IOException When error occurs communicating with server
 * @throws JAXBException When error occurs parsing the XML
 *//*from  ww  w.  j a  v a2s  . c o  m*/
public BusinessObjectDataVersions getBusinessObjectDataVersions(BusinessObjectDataKey businessObjectDataKey)
        throws URISyntaxException, IOException, JAXBException {
    LOGGER.info("Retrieving business object data versions from the registration server...");

    BusinessObjectDataVersions businessObjectDataVersions;
    try (CloseableHttpClient client = httpClientOperations.createHttpClient()) {
        StringBuilder uriPathBuilder = new StringBuilder(300);
        uriPathBuilder.append(HERD_APP_REST_URI_PREFIX);
        uriPathBuilder.append("/businessObjectData/namespaces/").append(businessObjectDataKey.getNamespace());
        uriPathBuilder.append("/businessObjectDefinitionNames/")
                .append(businessObjectDataKey.getBusinessObjectDefinitionName());
        uriPathBuilder.append("/businessObjectFormatUsages/")
                .append(businessObjectDataKey.getBusinessObjectFormatUsage());
        uriPathBuilder.append("/businessObjectFormatFileTypes/")
                .append(businessObjectDataKey.getBusinessObjectFormatFileType());
        uriPathBuilder.append("/versions");

        URIBuilder uriBuilder = new URIBuilder().setScheme(getUriScheme())
                .setHost(regServerAccessParamsDto.getRegServerHost())
                .setPort(regServerAccessParamsDto.getRegServerPort()).setPath(uriPathBuilder.toString())
                .setParameter("partitionValue", businessObjectDataKey.getPartitionValue());

        if (businessObjectDataKey.getSubPartitionValues() != null) {
            uriBuilder.setParameter("subPartitionValues",
                    herdStringHelper.join(businessObjectDataKey.getSubPartitionValues(), "|", "\\"));
        }

        if (businessObjectDataKey.getBusinessObjectFormatVersion() != null) {
            uriBuilder.setParameter("businessObjectFormatVersion",
                    businessObjectDataKey.getBusinessObjectFormatVersion().toString());
        }

        if (businessObjectDataKey.getBusinessObjectDataVersion() != null) {
            uriBuilder.setParameter("businessObjectDataVersion",
                    businessObjectDataKey.getBusinessObjectDataVersion().toString());
        }

        HttpGet httpGet = new HttpGet(uriBuilder.build());
        httpGet.addHeader("Accepts", DEFAULT_ACCEPT);

        // If SSL is enabled, set the client authentication header.
        if (regServerAccessParamsDto.isUseSsl()) {
            httpGet.addHeader(getAuthorizationHeader());
        }

        LOGGER.info(String.format("    HTTP GET URI: %s", httpGet.getURI().toString()));
        LOGGER.info(String.format("    HTTP GET Headers: %s", Arrays.toString(httpGet.getAllHeaders())));

        businessObjectDataVersions = getBusinessObjectDataVersions(
                httpClientOperations.execute(client, httpGet));
    }

    LOGGER.info(String.format(
            "Successfully retrieved %d already registered version(s) for the business object data. businessObjectDataKey=%s",
            businessObjectDataVersions.getBusinessObjectDataVersions().size(),
            jsonHelper.objectToJson(businessObjectDataKey)));

    return businessObjectDataVersions;
}

From source file:fr.gael.dhus.olingo.v1.V1Processor.java

/** Makes the `next` link for navigation purposes. */
private String makeNextLink(int skip) throws ODataException {
    URI selfLnk = getServiceRoot();
    URIBuilder ub = new URIBuilder(selfLnk);
    ub.setParameter("$skip", String.valueOf(skip));
    return ub.toString();
}

From source file:org.wikidata.wdtk.wikibaseapi.WikibaseDataFetcher.java

/**
 * Returns the URL string for a wbgetentities request to the Wikibase API,
 * or null if it was not possible to build such a string with the current
 * settings.//from  www. ja va  2  s. c o  m
 *
 * @param parameters
 *            map of possible parameters (e.g. ("sites", "enwiki"),
 *            ("titles", titles of entities to retrieve), ("ids", ids of
 *            entities to retrieve). See
 *            WikibaseDataFetcher.getWbGetEntitiesUrl(List<String>
 *            entityIds) as an example.
 * @return URL string
 */
String getWbGetEntitiesUrl(Map<String, String> parameters) {

    URIBuilder uriBuilder;
    try {
        uriBuilder = new URIBuilder(this.apiBaseUrl);
    } catch (URISyntaxException e1) {
        logger.error("Error in API URL \"" + this.apiBaseUrl + "\": " + e1.toString());
        return null;
    }

    uriBuilder.setParameter("action", "wbgetentities");
    uriBuilder.setParameter("format", "json");
    setRequestProps(uriBuilder);
    setRequestLanguages(uriBuilder);
    setRequestSitefilter(uriBuilder);
    for (String parameter : parameters.keySet()) {
        String value = parameters.get(parameter);
        uriBuilder.setParameter(parameter, value);
    }

    return uriBuilder.toString();
}

From source file:fi.csc.shibboleth.mobileauth.impl.authn.AuthenticateMobile.java

/** {@inheritDoc} */
protected Event doExecute(@Nonnull final RequestContext springRequestContext,
        @Nonnull final ProfileRequestContext profileRequestContext) {
    log.debug("{} Entering - doExecute", getLogPrefix());

    final MobileContext mobCtx = profileRequestContext.getSubcontext(AuthenticationContext.class)
            .getSubcontext(MobileContext.class);
    final String mobileNumber = StringSupport.trimOrNull(mobCtx.getMobileNumber());
    final String spamCode = StringSupport.trimOrNull(mobCtx.getSpamCode());

    final CloseableHttpClient httpClient;
    try {/*from w w  w . j  a  va2 s.co  m*/
        log.debug("{} Trying to create httpClient", getLogPrefix());
        httpClient = createHttpClient();
    } catch (KeyStoreException | RuntimeException e) {
        log.error("{} Cannot create httpClient", getLogPrefix(), e);
        return Events.failure.event(this);
    }

    // TODO: entity initialization
    HttpEntity entity = null;
    try {
        final URIBuilder builder = new URIBuilder();
        // TODO: remove hard-codings
        builder.setScheme("https").setHost(authServer).setPort(authPort).setPath(authPath)
                .setParameter(REST_PARAM_MOBILENUMBER, mobileNumber);
        if (spamCode != null) {
            builder.setParameter(REST_PARAM_NO_SPAM_CODE, spamCode);
        }

        final URI url = builder.build();

        final HttpGet httpGet = new HttpGet(url);
        final Gson gson = new GsonBuilder().create();

        final CloseableHttpResponse response = httpClient.execute(httpGet);
        log.debug("{} Response: {}", getLogPrefix(), response);

        int statusCode = response.getStatusLine().getStatusCode();
        log.debug("{}HTTPStatusCode {}", getLogPrefix(), statusCode);

        entity = response.getEntity();

        final String json = EntityUtils.toString(entity, "UTF-8");

        final StatusResponse status = gson.fromJson(json, StatusResponse.class);

        if (status.getErrorMessage() != null) {
            log.debug("{} Setting error message", getLogPrefix());
            mobCtx.setErrorMessage(status.getErrorMessage());
        }

        response.close();

        if (statusCode == HttpStatus.SC_OK) {

            log.debug("{} Gson commKey: {}", getLogPrefix(), status.getCommunicationDataKey());
            log.debug("{} Gson EventID: {}", getLogPrefix(), status.getEventId());
            log.debug("{} Gson ErrorMessage: {}", getLogPrefix(), status.getErrorMessage());

            mobCtx.setProcessState(ProcessState.IN_PROCESS);
            mobCtx.setConversationKey(status.getCommunicationDataKey());
            mobCtx.setEventId(status.getEventId());
            mobCtx.setErrorMessage(status.getErrorMessage());
        } else if (statusCode == HttpStatus.SC_METHOD_NOT_ALLOWED) {
            mobCtx.setProcessState(ProcessState.ERROR);
            // TODO: multilingual error message
            log.warn("{} 405 - Status code {} from REST gateway", getLogPrefix(), statusCode);
            return Events.failure.event(this);
        } else if (statusCode == HttpStatus.SC_UNAUTHORIZED) {
            mobCtx.setProcessState(ProcessState.ERROR);
            // TODO: multilingual error message
            log.error("{} 401 - Status code {} from REST gateway - Invalid client configuration?",
                    getLogPrefix(), statusCode);
            return Events.failure.event(this);
        } else {
            mobCtx.setProcessState(ProcessState.ERROR);
            // TODO: multilingual error message
            log.warn("{} Status code {} from REST gateway", getLogPrefix(), statusCode);
            return Events.gatewayError.event(this);
        }

    } catch (Exception e) {
        // TODO: better exception handling
        log.error("Exception: {}", e);
        ActionSupport.buildEvent(profileRequestContext, AuthnEventIds.AUTHN_EXCEPTION);
        return Events.failure.event(this);
    } finally {
        EntityUtils.consumeQuietly(entity);
    }

    return Events.success.event(this);
}

From source file:com.rackspacecloud.blueflood.inputs.handlers.HttpHandlerIntegrationTest.java

@Test
public void testSearchMetricsWithAcceptNonJsonShouldReturn415() throws Exception {

    // test the GET /v2.0/%s/metrics/search
    URIBuilder query_builder = getMetricDataQueryURIBuilder().setPath(String.format(getSearchPath, TENANT_ID));
    query_builder.setParameter("query", "foo.bar.none");
    HttpGet searchRequest = new HttpGet(query_builder.build());
    searchRequest.setHeader(HttpHeaders.ACCEPT, ContentType.APPLICATION_ATOM_XML.toString());
    HttpResponse response = client.execute(searchRequest);
    assertEquals("accept non Json should get 415", 415, response.getStatusLine().getStatusCode());
}