Example usage for org.apache.http.client.utils URLEncodedUtils parse

List of usage examples for org.apache.http.client.utils URLEncodedUtils parse

Introduction

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

Prototype

public static List<NameValuePair> parse(final String s, final Charset charset) 

Source Link

Document

Returns a list of NameValuePair NameValuePairs as parsed from the given string using the given character encoding.

Usage

From source file:eu.eubrazilcc.lvl.core.util.UrlUtils.java

/**
 * Returns a list of name-value pairs as built from the URI's query portion.
 * @param uri - input URI/*from  ww  w.  j  a va 2  s  .  c o  m*/
 * @return a list of name-value pairs as built from the URI's query portion.
 * @throws IllegalArgumentException If a malformed URI occurs.
 */
public static Map<String, String> getQueryParams(final URI uri) {
    checkArgument(uri != null, "Uninitialized URI");
    try {
        final URI nUri = uri.normalize();
        final URL url = nUri.isAbsolute() ? nUri.toURL()
                : new URL(new URL("http://example.org/"), nUri.toString());
        final String query = new URL(URLDecoder.decode(url.toString(), defaultCharset().name())).getQuery();
        final Map<String, String> map = newHashMap();
        final List<NameValuePair> pairs = URLEncodedUtils.parse(query, defaultCharset());
        final Iterator<NameValuePair> iterator = pairs.iterator();
        while (iterator.hasNext()) {
            final NameValuePair pair = iterator.next();
            map.put(pair.getName(), pair.getValue());
        }
        return map;
    } catch (MalformedURLException | UnsupportedEncodingException e) {
        throw new IllegalArgumentException("Malformed URI", e);
    }
}

From source file:com.tremolosecurity.unison.proxy.auth.twitter.TwitterAuth.java

public void doGet(HttpServletRequest request, HttpServletResponse response, AuthStep as)
        throws IOException, ServletException {

    HttpSession session = ((HttpServletRequest) request).getSession();
    HashMap<String, Attribute> authParams = (HashMap<String, Attribute>) session
            .getAttribute(ProxyConstants.AUTH_MECH_PARAMS);
    ConfigManager cfg = (ConfigManager) request.getAttribute(ProxyConstants.TREMOLO_CFG_OBJ);

    MyVDConnection myvd = cfg.getMyVD();

    String consumerKey = authParams.get("consumerKey").getValues().get(0);
    String consumerSecret = authParams.get("consumerSecret").getValues().get(0);
    String accessToken = authParams.get("accessToken").getValues().get(0);
    String accessSecret = authParams.get("accessSecret").getValues().get(0);

    boolean linkToDirectory = Boolean.parseBoolean(authParams.get("linkToDirectory").getValues().get(0));
    String noMatchOU = authParams.get("noMatchOU").getValues().get(0);
    String uidAttr = authParams.get("uidAttr").getValues().get(0);
    String lookupFilter = authParams.get("lookupFilter").getValues().get(0);
    //String userLookupClassName = authParams.get("userLookupClassName").getValues().get(0);

    UrlHolder holder = (UrlHolder) request.getAttribute(ProxyConstants.AUTOIDM_CFG);
    RequestHolder reqHolder = ((AuthController) session.getAttribute(ProxyConstants.AUTH_CTL)).getHolder();

    URL reqURL = new URL(request.getRequestURL().toString());
    String redirectURL = reqURL.getProtocol() + "://" + reqURL.getHost();
    if (reqURL.getPort() != -1) {
        redirectURL += ":" + reqURL.getPort();
    }//from   w  ww . ja va2 s . c o m

    String urlChain = holder.getUrl().getAuthChain();
    AuthChainType act = holder.getConfig().getAuthChains().get(reqHolder.getAuthChainName());

    AuthMechType amt = act.getAuthMech().get(as.getId());

    String authMechName = amt.getName();
    redirectURL += cfg.getAuthMechs().get(authMechName).getUri();

    if (request.getParameter("oauth_verifier") == null) {

        BasicHttpClientConnectionManager bhcm = new BasicHttpClientConnectionManager(
                GlobalEntries.getGlobalEntries().getConfigManager().getHttpClientSocketRegistry());
        RequestConfig rc = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build();
        CloseableHttpClient http = HttpClients.custom().setConnectionManager(bhcm).setDefaultRequestConfig(rc)
                .build();

        HttpPost post = new HttpPost("https://api.twitter.com/oauth/request_token");

        this.signRequest(post, "", accessToken, accessSecret, consumerKey, consumerSecret);

        CloseableHttpResponse httpResp = http.execute(post);

        BufferedReader in = new BufferedReader(new InputStreamReader(httpResp.getEntity().getContent()));

        StringBuffer token = new StringBuffer();

        String line = null;
        while ((line = in.readLine()) != null) {
            token.append(line);
        }

        httpResp.close();
        bhcm.close();

        System.err.println(token);

        List<NameValuePair> parsed = URLEncodedUtils.parse(token.toString(), Charsets.UTF_8);
        HashMap<String, String> accessTokens = new HashMap<String, String>();

        for (NameValuePair nvp : parsed) {
            accessTokens.put(nvp.getName(), nvp.getValue());
        }

        request.getSession().setAttribute("twitterAccessToken", accessTokens);

        StringBuffer b = new StringBuffer().append("https://api.twitter.com/oauth/authenticate?oauth_token=")
                .append(accessTokens.get("oauth_token"));
        response.sendRedirect(b.toString());
    } else {
        String oauthVerifier = request.getParameter("oauth_verifier");
        HashMap<String, String> accessTokens = (HashMap<String, String>) request.getSession()
                .getAttribute("twitterAccessToken");

        BasicHttpClientConnectionManager bhcm = new BasicHttpClientConnectionManager(
                GlobalEntries.getGlobalEntries().getConfigManager().getHttpClientSocketRegistry());
        RequestConfig rc = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build();
        CloseableHttpClient http = HttpClients.custom().setConnectionManager(bhcm).setDefaultRequestConfig(rc)
                .build();

        HttpUriRequest post = new HttpPost();

        try {
            post = RequestBuilder.post().setUri(new java.net.URI("https://api.twitter.com/oauth/access_token"))
                    .addParameter("oauth_verifier", oauthVerifier).build();
        } catch (URISyntaxException e) {
            throw new ServletException("Could not create post request");
        }

        this.signRequest(post, "oauth_verifier=" + oauthVerifier, accessTokens.get("oauth_token"),
                accessTokens.get("oauth_token_secret"), consumerKey, consumerSecret);

        CloseableHttpResponse httpResp = http.execute(post);

        BufferedReader in = new BufferedReader(new InputStreamReader(httpResp.getEntity().getContent()));

        StringBuffer token = new StringBuffer();

        String line = null;
        while ((line = in.readLine()) != null) {
            token.append(line);
        }

        EntityUtils.consumeQuietly(httpResp.getEntity());
        httpResp.close();

        System.err.println(token);

        List<NameValuePair> parsed = URLEncodedUtils.parse(token.toString(), Charsets.UTF_8);
        HashMap<String, String> userTokens = new HashMap<String, String>();

        for (NameValuePair nvp : parsed) {
            userTokens.put(nvp.getName(), nvp.getValue());
        }

        request.getSession().setAttribute("twitterUserToken", accessTokens);

        HttpGet get = new HttpGet(
                "https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true");
        this.signRequest(get, "", userTokens.get("oauth_token"), userTokens.get("oauth_token_secret"),
                consumerKey, consumerSecret);

        httpResp = http.execute(get);

        in = new BufferedReader(new InputStreamReader(httpResp.getEntity().getContent()));
        token.setLength(0);

        line = null;
        while ((line = in.readLine()) != null) {
            token.append(line);
        }

        EntityUtils.consumeQuietly(httpResp.getEntity());
        httpResp.close();

        System.err.println(token);

        httpResp.close();
        bhcm.close();

        Map attrs = com.cedarsoftware.util.io.JsonReader.jsonToMaps(token.toString());

        if (!linkToDirectory) {
            loadUnlinkedUser(session, noMatchOU, uidAttr, act, attrs);

            as.setSuccess(true);

        } else {
            lookupUser(as, session, myvd, noMatchOU, uidAttr, lookupFilter, act, attrs);
        }

        String redirectToURL = request.getParameter("target");
        if (redirectToURL != null && !redirectToURL.isEmpty()) {
            reqHolder.setURL(redirectToURL);
        }

        holder.getConfig().getAuthManager().nextAuth(request, response, session, false);

    }

}

From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java

public void testURIBuilding() throws JSONException, SenseiException, UnsupportedEncodingException,
        URISyntaxException, MalformedURLException {
    SenseiRequest aRequest = createNonRandomSenseiRequest();
    List<NameValuePair> queryParams = HttpRestSenseiServiceImpl.convertRequestToQueryParams(aRequest);
    HttpRestSenseiServiceImpl senseiService = createSenseiService();
    URI requestURI = senseiService.buildRequestURI(queryParams);

    assertTrue(requestURI.toURL().toString().length() > 0); // force resolving the URI to a string

    List<NameValuePair> parsedParams = URLEncodedUtils.parse(requestURI, "UTF-8");
    MockServletRequest mockServletRequest = MockServletRequest.create(parsedParams);
    DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest));
    SenseiRequest bRequest = DefaultSenseiJSONServlet.convertSenseiRequest(params);
    assertEquals(aRequest, bRequest);//  w ww .j a  v a  2  s  .c o  m
}

From source file:com.sheepdog.mashmesh.integration.IntegrationTestHelper.java

/**
 * Extracts all values of a query string parameter from a string representing a URL.
 * @param url a string containing the URL
 * @param queryParameter the name of the query string parameter to extract
 * @return a list of strings, each one representing a value set for the given parameter
 * @throws URISyntaxException if the URL is malformed.
 *///from  w w w. j a  v a2  s  .co  m
public List<String> getQueryStringParameter(String url, String queryParameter) throws URISyntaxException {
    List<NameValuePair> pairs = URLEncodedUtils.parse(new URI(url), "UTF-8");
    List<String> values = new ArrayList<String>();

    for (NameValuePair pair : pairs) {
        if (pair.getName().equals(queryParameter)) {
            values.add(pair.getValue());
        }
    }

    return values;
}

From source file:com.snowplowanalytics.refererparser.Parser.java

private String extractSearchTerm(String query, List<String> possibleParameters) {

    List<NameValuePair> params;
    try {/*from   w ww  . ja va 2 s .c o  m*/
        params = URLEncodedUtils.parse(new URI("http://localhost?" + query), "UTF-8");
        // params = URLEncodedUtils.parse(query, Charset.forName("UTF-8")); because https://github.com/snowplow/referer-parser/issues/76
    } catch (IllegalArgumentException iae) {
        return null;
    } catch (URISyntaxException use) { // For new URI
        return null;
    }

    for (NameValuePair pair : params) {
        final String name = pair.getName();
        final String value = pair.getValue();

        if (possibleParameters.contains(name)) {
            return value;
        }
    }
    return null;
}

From source file:org.switchyard.component.http.endpoint.StandaloneEndpointPublisher.java

/**
 * Method for get request information from a http exchange.
 *
 * @param request HttpExchange/*w  w  w .  j  ava  2s  .co m*/
 * @param type ContentType
 * @return Request information from a http exchange
 * @throws IOException when the request information could not be read
 */
public static HttpRequestInfo getRequestInfo(HttpExchange request, ContentType type) throws IOException {
    HttpRequestInfo requestInfo = new HttpRequestInfo();

    if (request.getHttpContext().getAuthenticator() instanceof BasicAuthenticator) {
        requestInfo.setAuthType(HttpServletRequest.BASIC_AUTH);
    }
    URI u = request.getRequestURI();
    URI requestURI = null;
    try {
        requestURI = new URI(u.getScheme(), u.getUserInfo(), u.getHost(), u.getPort(), u.getPath(), null, null);
    } catch (URISyntaxException e) {
        // Strange that this could happen when copying from another URI.
        LOGGER.debug(e);
    }
    requestInfo.setCharacterEncoding(type.getCharset());
    requestInfo.setContentType(type.toString());
    requestInfo.setContextPath(request.getHttpContext().getPath());
    requestInfo.setLocalAddr(request.getLocalAddress().getAddress().getHostAddress());
    requestInfo.setLocalName(request.getLocalAddress().getAddress().getHostName());
    requestInfo.setMethod(request.getRequestMethod());
    requestInfo.setProtocol(request.getProtocol());
    requestInfo.setQueryString(u.getQuery());
    requestInfo.setRemoteAddr(request.getRemoteAddress().getAddress().getHostAddress());
    requestInfo.setRemoteHost(request.getRemoteAddress().getAddress().getHostName());
    if (request.getHttpContext().getAuthenticator() instanceof BasicAuthenticator) {
        requestInfo.setRemoteUser(request.getPrincipal().getUsername());
    }
    requestInfo.setContentLength(request.getRequestBody().available());
    // requestInfo.setRequestSessionId(request.getRequestedSessionId());
    if (requestURI != null) {
        requestInfo.setRequestURI(requestURI.toString());
    }
    requestInfo.setScheme(u.getScheme());
    requestInfo.setServerName(u.getHost());
    requestInfo.setRequestPath(u.getPath());

    // Http Query params...
    if (requestInfo.getQueryString() != null) {
        Charset charset = null;
        if (type.getCharset() != null) {
            try {
                charset = Charset.forName(type.getCharset());
            } catch (Exception exception) {
                LOGGER.debug(exception);
            }
        }
        for (NameValuePair nameValuePair : URLEncodedUtils.parse(requestInfo.getQueryString(), charset)) {
            requestInfo.addQueryParam(nameValuePair.getName(), nameValuePair.getValue());
        }
    }

    // Credentials...
    requestInfo.getCredentials().addAll(new HttpExchangeCredentialExtractor().extract(request));

    if (LOGGER.isTraceEnabled()) {
        LOGGER.trace(requestInfo);
    }

    return requestInfo;
}

From source file:ddf.security.samlp.SimpleSignTest.java

@Test(expected = SimpleSign.SignatureException.class)
public void testSignUriStringAndModifyWithDsa() throws Exception {

    systemCrypto = new SystemCrypto("dsa-encryption.properties", "dsa-signature.properties", encryptionService);
    simpleSign = new SimpleSign(systemCrypto);

    String deflatedSamlResponse = deflateAndBase64Encode(cannedResponse);

    String queryParams = String.format("SAMLResponse=%s&RelayState=%s",
            URLEncoder.encode(deflatedSamlResponse, "UTF-8"), URLEncoder.encode(RELAY_STATE_VAL, "UTF-8"));
    String idpRequest = SINGLE_SIGN_ON_LOCATION + "?" + queryParams;
    UriBuilder idpUri = new UriBuilderImpl(new URI(idpRequest));
    simpleSign.signUriString(queryParams, idpUri);
    idpUri.queryParam("RelayState", "changedit");

    String signatureAlgorithm = URLEncodedUtils.parse(idpUri.build(), "UTF-8").get(2).getValue();
    String signatureString = URLEncodedUtils.parse(idpUri.build(), "UTF-8").get(3).getValue();

    String signedMessage = String.format("%s=%s&%s=%s&%s=%s", SAML_RESPONSE,
            URLEncoder.encode(deflatedSamlResponse, "UTF-8"), RELAY_STATE,
            URLEncoder.encode(RELAY_STATE_VAL, "UTF-8"), SIG_ALG,
            URLEncoder.encode(signatureAlgorithm, "UTF-8"));
    simpleSign.validateSignature(signedMessage, signatureString, dsaCert);

}

From source file:biz.neustar.nexus.plugins.gitlab.GitlabAuthenticatingRealmIT.java

License:asdf

@Test
public void testPlugin() throws Exception {
    assertTrue(nexus().isRunning());/*from  w  ww .  j  av  a 2 s. c o m*/

    URL nexusUrl = nexus().getUrl();
    URI uri = new URIBuilder().setHost(nexusUrl.getHost()).setPath(nexusUrl.getPath())
            .setPort(nexusUrl.getPort()).setParameters(URLEncodedUtils.parse(nexusUrl.getQuery(), UTF_8))
            .setScheme(nexusUrl.getProtocol()).setUserInfo("jdamick", "asdfasdfasdf").build()
            .resolve("content/groups/public/");

    HttpClient httpclient = HttpClientBuilder.create().build();

    {// request 1
        HttpGet req1 = new HttpGet(uri);
        HttpResponse resp1 = httpclient.execute(req1);
        assertEquals(200, resp1.getStatusLine().getStatusCode());

        RecordedRequest request = server.takeRequest(); // 1 request recorded
        assertEquals("/api/v3/session", request.getPath());
        req1.releaseConnection();
    }

    // failure checks
    { // request 2
        HttpGet req2 = new HttpGet(uri);
        HttpResponse resp2 = httpclient.execute(req2);
        assertEquals(401, resp2.getStatusLine().getStatusCode());
        req2.releaseConnection();
    }

    { // request 3
        HttpGet req3 = new HttpGet(uri);
        HttpResponse resp3 = httpclient.execute(req3);
        assertEquals(401, resp3.getStatusLine().getStatusCode());
        req3.releaseConnection();
    }
}

From source file:org.jvoicexml.documentserver.schemestrategy.HttpSchemeStrategy.java

/**
 * Adds the parameters to the HTTP method.
 * //from   w  w  w . j  a  v  a2s . c  o  m
 * @param parameters
 *            parameters to add
 * @param uri
 *            the given URI
 * @return URI with the given parameters
 * @throws URISyntaxException
 *             error creating a URI
 * @throws SemanticError
 *             error evaluating a parameter
 */
private URI addParameters(final Collection<KeyValuePair> parameters, final URI uri)
        throws URISyntaxException, SemanticError {
    if ((parameters == null) || parameters.isEmpty()) {
        return uri;
    }
    final ArrayList<NameValuePair> queryParameters = new ArrayList<NameValuePair>();
    for (KeyValuePair current : parameters) {
        final Object value = current.getValue();
        if (!(value instanceof File)) {
            final String name = current.getKey();
            final NameValuePair pair = new BasicNameValuePair(name, value.toString());
            queryParameters.add(pair);
        }
    }

    final Collection<NameValuePair> parameterList = URLEncodedUtils.parse(uri, encoding);
    queryParameters.addAll(parameterList);

    final String query = URLEncodedUtils.format(queryParameters, encoding);
    final URIBuilder builder = new URIBuilder(uri);
    builder.setQuery(query);
    return builder.build();
}

From source file:com.supernovapps.audio.jstreamsourcer.IcecastTest.java

private HashMap<String, String> getParams(HttpUriRequest request) throws URISyntaxException {
    List<NameValuePair> params = URLEncodedUtils.parse(new URI(request.getURI().toASCIIString()), "UTF-8");
    HashMap<String, String> paramsMap = new HashMap<String, String>();
    for (NameValuePair param : params) {
        paramsMap.put(param.getName(), param.getValue());
    }/*  w w  w . j  a va2s.  co m*/
    return paramsMap;
}