List of usage examples for org.apache.http.client.utils URLEncodedUtils parse
public static List<NameValuePair> parse(final String s, final Charset charset)
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; }