List of usage examples for org.springframework.http HttpEntity HttpEntity
public HttpEntity(MultiValueMap<String, String> headers)
From source file:org.slc.sli.dashboard.client.RESTClient.java
/** * Makes a JSONRequest with the path. Times out, if boolean timeout property is set to true. * Timeout value is set in application-context.xml (dashboard.WSCall.timeout) * @param path//from ww w . j a v a 2 s .com * @param timeout * @return */ public String getJsonRequest(String path, boolean timeout) { HttpHeaders headers = new HttpHeaders(); HttpEntity<String> response = null; RestTemplate templateToUse; if (timeout) { templateToUse = templateWTimeout; } else { templateToUse = template; } try { response = exchange(templateToUse, path, HttpMethod.GET, new HttpEntity(headers), String.class); } catch (HttpClientErrorException e) { logger.debug("Catch HttpClientException: {}", e.getStatusCode()); } if (response == null) { return null; } JsonParser parser = new JsonParser(); String jsonText = parser.parse(response.getBody()).getAsString(); return jsonText; }
From source file:org.mitreid.multiparty.web.ClientController.java
@RequestMapping(value = "/fetch", method = RequestMethod.POST, consumes = MimeTypeUtils.APPLICATION_FORM_URLENCODED_VALUE) public String fetch(@RequestParam("resource") String resource, Model m, HttpSession session) { // get the access token if we have one String accessTokenValue = acccessTokenService.getAccessToken(resource); // send our request to the resource HttpHeaders headers = new HttpHeaders(); if (!Strings.isNullOrEmpty(accessTokenValue)) { headers.add("Authorization", "Bearer " + accessTokenValue); }// w w w . ja v a 2 s . co m @SuppressWarnings("rawtypes") HttpEntity request = new HttpEntity<>(headers); ResponseEntity<String> responseEntity = restTemplate.exchange(resource, HttpMethod.GET, request, String.class); if (responseEntity.getStatusCode().equals(HttpStatus.OK)) { // if we get back data, display it JsonObject rso = parser.parse(responseEntity.getBody()).getAsJsonObject(); m.addAttribute("label", rso.get("label").getAsString()); m.addAttribute("value", rso.get("value").getAsString()); return "home"; } else { // if we get back an error, try to get an access token List<String> authHeaders = responseEntity.getHeaders().get(HttpHeaders.WWW_AUTHENTICATE); // assume there's only one auth header for now String authHeader = Iterators.getOnlyElement(authHeaders.iterator()); // parse the header to get the good bits String authServerUri = null; String ticket = null; Iterable<String> parts = Splitter.on(",").split(authHeader.substring("UMA ".length())); for (String part : parts) { List<String> subparts = Splitter.on("=").splitToList(part.trim()); if (subparts.get(0).equals("as_uri")) { authServerUri = subparts.get(1); // strip quotes authServerUri = authServerUri.substring(1, authServerUri.length() - 1); } else if (subparts.get(0).equals("ticket")) { ticket = subparts.get(1); // strip quotes ticket = ticket.substring(1, ticket.length() - 1); } } // find the AS we need to talk to (maybe discover) MultipartyServerConfiguration server = serverConfig.getServerConfiguration(authServerUri); // find the client configuration (maybe register) RegisteredClient client = clientConfig.getClientConfiguration(server); HttpHeaders tokenHeaders = new HttpHeaders(); tokenHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED); // send request to the token endpoint MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); params.add("client_id", client.getClientId()); params.add("client_secret", client.getClientSecret()); params.add("grant_type", "urn:ietf:params:oauth:grant_type:multiparty-delegation"); params.add("ticket", ticket); //params.add("scope", "read write"); HttpEntity<MultiValueMap<String, String>> tokenRequest = new HttpEntity<>(params, tokenHeaders); ResponseEntity<String> tokenResponse = restTemplate.postForEntity(server.getTokenEndpointUri(), tokenRequest, String.class); JsonObject o = parser.parse(tokenResponse.getBody()).getAsJsonObject(); if (o.has("error")) { if (o.get("error").getAsString().equals("need_info")) { // if we get need info, redirect JsonObject details = o.get("error_details").getAsJsonObject(); // this is the URL to send the user to String claimsEndpoint = details.get("requesting_party_claims_endpoint").getAsString(); String newTicket = details.get("ticket").getAsString(); // set a state value for our return String state = UUID.randomUUID().toString(); session.setAttribute(STATE_SESSION_VAR, state); // save bits about the request we were trying to make session.setAttribute(RESOURCE_SESSION_VAR, resource); session.setAttribute(AUTHSERVERURI_SESSION_VAR, authServerUri); UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(claimsEndpoint) .queryParam("client_id", client.getClientId()).queryParam("ticket", newTicket) .queryParam("claims_redirect_uri", client.getClaimsRedirectUris().iterator().next()) // get the first one and punt .queryParam("state", state); return "redirect:" + builder.build(); } else { // it's an error we don't know how to deal with, give up logger.error("Unknown error from token endpoint: " + o.get("error").getAsString()); return "home"; } } else { // if we get an access token, try it again accessTokenValue = o.get("access_token").getAsString(); acccessTokenService.saveAccesstoken(resource, accessTokenValue); headers = new HttpHeaders(); if (!Strings.isNullOrEmpty(accessTokenValue)) { headers.add("Authorization", "Bearer " + accessTokenValue); } request = new HttpEntity<>(headers); responseEntity = restTemplate.exchange(resource, HttpMethod.GET, request, String.class); if (responseEntity.getStatusCode().equals(HttpStatus.OK)) { // if we get back data, display it JsonObject rso = parser.parse(responseEntity.getBody()).getAsJsonObject(); m.addAttribute("label", rso.get("label").getAsString()); m.addAttribute("value", rso.get("value").getAsString()); return "home"; } else { logger.error("Unable to get a token"); return "home"; } } } }
From source file:at.ac.tuwien.infosys.Balancer.java
@RequestMapping(value = "/provision/{nrOfDevices}/{componentName}/{version}", method = RequestMethod.GET) public ResponseEntity<String> startProvisioning(@PathVariable Integer nrOfDevices, @PathVariable String componentName, @PathVariable String version) { logger.info("Start provisioning of " + nrOfDevices + " device(s)!"); if (nrOfDevices <= 0) return new ResponseEntity<String>(HttpStatus.BAD_REQUEST); // get List of devices to provision List<ProvisionRequest> toProvision = nodeManager.provision(nrOfDevices); logger.info("Selected devices to be provisioned: " + toProvision); List<String> fullDeviceList = new ArrayList<String>(); // save time stamp before provisioning is triggered long startedProvisiong = System.currentTimeMillis(); // invoke each node to start provisioning logger.info("Start contacting nodes and send provisioning request!"); for (ProvisionRequest request : toProvision) { List<String> deviceIds = request.getDevices(); String builderUrl = "http://" + request.getNode() + ":" + builderPort + builderContext + builderPath; logger.info("Contact node: " + builderUrl + " to provision: " + deviceIds); DeviceUpdateRequest updateRequest = new DeviceUpdateRequest(deviceIds, componentName, version); updateRequest.setPush(true);// w w w . j a va2s .c o m // use asynchronous rest-template to not block ListenableFuture<ResponseEntity<String>> result = asyncRestTemplate.postForEntity(builderUrl, new HttpEntity<DeviceUpdateRequest>(new DeviceUpdateRequest(deviceIds, componentName, version)), String.class); result.addCallback(new ListenableFutureCallback<ResponseEntity<String>>() { @Override public void onSuccess(ResponseEntity<String> result) { logger.info("Received result from node: " + result.getBody()); } @Override public void onFailure(Throwable t) { logger.severe("Error occured while contacting node: " + t.getMessage()); } }); // add currently provisioned devices to the overall list fullDeviceList.addAll(deviceIds); } logger.info("Finished contacting nodes!"); // initiate the tracking phase of the provisioning provisioningLogger.startLogging(fullDeviceList, startedProvisiong); return new ResponseEntity<String>( "Successfully triggered provisioning of: " + fullDeviceList.size() + " devices!", HttpStatus.ACCEPTED); }
From source file:org.asqatasun.websnapshot.webapp.controller.IndexController.java
/** * * @param image// www . ja va 2 s . co m * @param headers * @return * @throws IOException */ private HttpEntity<?> testImageAndReturnedIt(Image image, HttpHeaders headers, int width, int height, boolean status) throws IOException { if (image == null && status) { JsonImage jsonImage = new JsonImage(imageDataService.getNotCreatedImage(width, height)); return new HttpEntity<JsonImage>(jsonImage); } if (image == null) { return createErrorMessage("NOT_EXIST", headers, width, height); } if (status) { JsonImage jsonImage = new JsonImage(image); return new HttpEntity<JsonImage>(jsonImage); } if (image.getStatus().equals(Status.CREATED)) { return new HttpEntity<byte[]>(image.getRawData(), headers); } else { return createErrorMessage(image.getStatus().toString(), headers, width, height); } }
From source file:org.client.two.service.OAuthAuthenticationService.java
public String getAuthorizationCode(String accessTokenA, String redirectUri, String appTokenClientTwo) { RestOperations rest = new RestTemplate(); HttpHeaders headersA = new HttpHeaders(); headersA.set("Authorization", "Bearer " + accessTokenA); ResponseEntity<String> resAuth2 = rest .exchange(//from w ww . j ava 2 s . co m MessageFormat.format( "{0}/oauth/authorize?" + "client_id={1}&response_type=code&redirect_uri={2}&scope=WRITE", oauthServerBaseURL, appTokenClientTwo, redirectUri), HttpMethod.POST, new HttpEntity<String>(headersA), String.class); String sessionId = resAuth2.getHeaders().get("Set-Cookie").get(0); int p1 = sessionId.indexOf("=") + 1; int p2 = sessionId.indexOf(";"); sessionId = sessionId.substring(p1, p2); headersA.add("Cookie", "JSESSIONID=" + sessionId); resAuth2 = rest.exchange( MessageFormat.format("{0}/oauth/authorize?" + "user_oauth_approval=true&authorize=Authorize", oauthServerBaseURL), HttpMethod.POST, new HttpEntity<String>(headersA), String.class); String code = resAuth2.getHeaders().get("location").get(0); p1 = code.lastIndexOf("=") + 1; code = code.substring(p1); return code; }
From source file:com.hatta.consumer.App.java
private static void deleteCustomer(int id, AuthTokenInfo tokenInfo) { Assert.notNull(tokenInfo, "Authenticate first please......"); RestTemplate restTemplate = new RestTemplate(); HttpEntity<String> request = new HttpEntity<String>(getHeaders()); System.out.println("Delete a customer: " + id); restTemplate.delete(REST_SERVICE_URI + "/api/user/" + id + QPM_ACCESS_TOKEN + tokenInfo.getAccess_token(), request);/* w ww . ja v a2 s.c o m*/ }