Example usage for org.springframework.http HttpEntity HttpEntity

List of usage examples for org.springframework.http HttpEntity HttpEntity

Introduction

In this page you can find the example usage for org.springframework.http HttpEntity HttpEntity.

Prototype

public HttpEntity(MultiValueMap<String, String> headers) 

Source Link

Document

Create a new HttpEntity with the given headers and no body.

Usage

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*/
}