Example usage for org.springframework.web.client RestTemplate exchange

List of usage examples for org.springframework.web.client RestTemplate exchange

Introduction

In this page you can find the example usage for org.springframework.web.client RestTemplate exchange.

Prototype

@Override
    public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity,
            ParameterizedTypeReference<T> responseType) throws RestClientException 

Source Link

Usage

From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java

public static BaseClientDetails createOrUpdateClient(String adminToken, String url, String switchToZoneId,
        BaseClientDetails client) throws Exception {

    RestTemplate template = new RestTemplate();
    template.setErrorHandler(new DefaultResponseErrorHandler() {
        @Override/*  w w w  .j  ava  2s.  c  om*/
        protected boolean hasError(HttpStatus statusCode) {
            return statusCode.is5xxServerError();
        }
    });
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + adminToken);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    if (StringUtils.hasText(switchToZoneId)) {
        headers.add(IdentityZoneSwitchingFilter.HEADER, switchToZoneId);
    }
    HttpEntity getHeaders = new HttpEntity(JsonUtils.writeValueAsBytes(client), headers);
    ResponseEntity<String> clientCreate = template.exchange(url + "/oauth/clients", HttpMethod.POST, getHeaders,
            String.class);
    if (clientCreate.getStatusCode() == HttpStatus.CREATED) {
        return JsonUtils.readValue(clientCreate.getBody(), BaseClientDetails.class);
    } else if (clientCreate.getStatusCode() == HttpStatus.CONFLICT) {
        HttpEntity putHeaders = new HttpEntity(JsonUtils.writeValueAsBytes(client), headers);
        ResponseEntity<String> clientUpdate = template.exchange(url + "/oauth/clients/" + client.getClientId(),
                HttpMethod.PUT, putHeaders, String.class);
        if (clientUpdate.getStatusCode() == HttpStatus.OK) {
            return JsonUtils.readValue(clientCreate.getBody(), BaseClientDetails.class);
        } else {
            throw new RuntimeException("Invalid update return code:" + clientUpdate.getStatusCode());
        }
    }
    throw new RuntimeException("Invalid crete return code:" + clientCreate.getStatusCode());
}

From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java

public static List<IdentityProvider> getProviders(String zoneAdminToken, String url, String zoneId) {
    RestTemplate client = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + zoneAdminToken);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    headers.add(IdentityZoneSwitchingFilter.HEADER, zoneId);
    HttpEntity getHeaders = new HttpEntity(headers);
    ResponseEntity<String> providerGet = client.exchange(url + "/identity-providers", HttpMethod.GET,
            getHeaders, String.class);
    if (providerGet != null && providerGet.getStatusCode() == HttpStatus.OK) {
        return JsonUtils.readValue(providerGet.getBody(), new TypeReference<List<IdentityProvider>>() {
        });/*from w w w.java  2 s  .c  om*/
    }
    return null;
}

From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java

public static void deleteProvider(String zoneAdminToken, String url, String zoneId, String originKey) {
    IdentityProvider provider = getProvider(zoneAdminToken, url, zoneId, originKey);
    RestTemplate client = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Authorization", "bearer " + zoneAdminToken);
    headers.add(IdentityZoneSwitchingFilter.HEADER, zoneId);
    HttpEntity getHeaders = new HttpEntity(headers);
    client.exchange(url + "/identity-providers/" + provider.getId(), HttpMethod.DELETE, getHeaders,
            String.class);
}

From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java

public static String getClientCredentialsToken(String baseUrl, String clientId, String clientSecret)
        throws Exception {
    RestTemplate template = new RestTemplate();
    template.setRequestFactory(new StatelessRequestFactory());
    MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
    formData.add("grant_type", "client_credentials");
    formData.add("client_id", clientId);
    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.set("Authorization",
            "Basic " + new String(Base64.encode(String.format("%s:%s", clientId, clientSecret).getBytes())));

    @SuppressWarnings("rawtypes")
    ResponseEntity<Map> response = template.exchange(baseUrl + "/oauth/token", HttpMethod.POST,
            new HttpEntity(formData, headers), Map.class);

    Assert.assertEquals(HttpStatus.OK, response.getStatusCode());

    @SuppressWarnings("unchecked")
    OAuth2AccessToken accessToken = DefaultOAuth2AccessToken.valueOf(response.getBody());
    return accessToken.getValue();
}

From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java

public static Map<String, Object> getPasswordToken(String baseUrl, String clientId, String clientSecret,
        String username, String password, String scopes) throws Exception {
    RestTemplate template = new RestTemplate();
    template.getMessageConverters().add(0,
            new StringHttpMessageConverter(java.nio.charset.Charset.forName("UTF-8")));
    template.setRequestFactory(new StatelessRequestFactory());
    MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
    formData.add("grant_type", "password");
    formData.add("client_id", clientId);
    formData.add("username", username);
    formData.add("password", password);
    formData.add("response_type", "token id_token");
    if (StringUtils.hasText(scopes)) {
        formData.add("scope", scopes);
    }/* w w  w  .jav  a2 s.com*/
    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.set("Authorization",
            "Basic " + new String(Base64.encode(String.format("%s:%s", clientId, clientSecret).getBytes())));

    @SuppressWarnings("rawtypes")
    ResponseEntity<Map> response = template.exchange(baseUrl + "/oauth/token", HttpMethod.POST,
            new HttpEntity(formData, headers), Map.class);

    Assert.assertEquals(HttpStatus.OK, response.getStatusCode());
    return response.getBody();
}

From source file:org.mskcc.cbio.portal.util.SessionServiceUtil.java

/**
 * Return cohort object if there is success response from 
 * session-service API, else it would return null
 * @param virtualStudyId/* w  ww. j  a  va 2  s  .  c om*/
 * @return cohort object
 */
public VirtualStudy getVirtualStudyData(String virtualStudyId) {
    if (!GlobalProperties.getSessionServiceUrl().equals("")) {
        try {
            RestTemplate restTemplate = new RestTemplate();
            HttpEntity<String> headers = new HttpEntity<String>(getHttpHeaders());

            ResponseEntity<VirtualStudy> responseEntity = restTemplate.exchange(
                    GlobalProperties.getSessionServiceUrl() + "virtual_study/" + virtualStudyId, HttpMethod.GET,
                    headers, VirtualStudy.class);
            return responseEntity.getBody();
        } catch (HttpStatusCodeException exception) {
            LOG.warn("SessionServiceUtil.getVirtualCohortData(): HttpStatusCodeException = '"
                    + exception.getStatusCode() + "'");
        } catch (Exception exception) {
            LOG.warn("SessionServiceUtil.getVirtualCohortData(): Exception = '" + exception.getMessage() + "'");
        }
    }
    return null;
}

From source file:org.paxml.bean.RestTag.java

@Override
protected Object doInvoke(Context context) throws Exception {

    RestTemplate t = new RestTemplate();
    if (!simple) {
        // cancel default error handling
        t.setErrorHandler(new ResponseErrorHandler() {

            @Override//  w  w w .  j av  a  2s .c  o  m
            public boolean hasError(ClientHttpResponse response) throws IOException {
                // always say no error
                return false;
            }

            @Override
            public void handleError(ClientHttpResponse response) throws IOException {
                // do nothing
            }

        });
    }
    Object value = getValue();
    HttpHeaders hds = new HttpHeaders();
    if (username != null) {
        String[] auth = PaxmlUtils.makeHttpClientAutorizationHeader(username, password);
        hds.set(auth[0], auth[1]);
    }
    if (headers != null) {
        Map<String, String> map = new LinkedHashMap<String, String>();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            hds.set(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
        }
    }
    if (StringUtils.isNotBlank(contentType)) {
        hds.setContentType(org.springframework.http.MediaType.parseMediaType(contentType));
    }
    String reqBody = makeRequestBody(value);
    log.debug("REST request body=" + reqBody);
    HttpEntity<String> entity = new HttpEntity<String>(reqBody, hds);

    ResponseEntity<String> rsp = t.exchange(target, _method, entity, String.class);

    Object body = parseResponse ? parseResponse(rsp) : rsp.getBody();
    if (simple) {
        return body;
    }
    return new RestResult(body, rsp.getHeaders(), rsp.getStatusCode().value());

}

From source file:org.sakaiproject.rubrics.logic.impl.RubricsServiceImpl.java

private String createCriterionJsonPayload(HashMap<String, String> formPostParameters,
        Resource<ToolItemRubricAssociation> association) throws Exception {

    Map<String, Map<String, String>> criterionDataMap = extractCriterionDataFromParams(formPostParameters);

    String criterionJsonData = "";
    int index = 0;
    boolean pointsAdjusted = false;
    String points = null;/*from  ww  w.j ava  2s . com*/
    String selectedRatingId = null;

    String inlineRubricUri = String.format("%s?%s", association.getLink("rubric").getHref(),
            "projection=inlineRubric");

    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.add("Authorization",
            String.format("Bearer %s", generateJsonWebToken(association.getContent().getToolId())));
    HttpEntity<?> requestEntity = new HttpEntity<>(headers);
    ResponseEntity<Rubric> rubricEntity = restTemplate.exchange(inlineRubricUri, HttpMethod.GET, requestEntity,
            Rubric.class);

    Map<String, Criterion> criterions = new HashMap<>();
    for (Criterion criterion : rubricEntity.getBody().getCriterions()) {
        criterions.put(String.valueOf(criterion.getId()), criterion);
    }

    for (Map.Entry<String, Map<String, String>> criterionData : criterionDataMap.entrySet()) {
        if (index > 0) {
            criterionJsonData += ", ";
        }
        index++;

        final String selectedRatingPoints = criterionData.getValue().get("rbcs-criterion");

        if (StringUtils.isNotBlank(criterionData.getValue().get("rbcs-criterion-override"))) {
            pointsAdjusted = true;
            points = criterionData.getValue().get("rbcs-criterion-override");
        } else {
            pointsAdjusted = false;
            points = selectedRatingPoints;
        }

        Criterion criterion = criterions.get(criterionData.getKey());
        Optional<Rating> rating = criterion.getRatings().stream()
                .filter(c -> String.valueOf(c.getPoints()).equals(selectedRatingPoints)).findFirst();

        if (rating.isPresent()) {
            selectedRatingId = String.valueOf(rating.get().getId());
        }

        if (StringUtils.isEmpty(points)) {
            points = "0";
        }

        criterionJsonData += String.format(
                "{ \"criterionId\" : \"%s\", \"points\" : \"%s\", "
                        + "\"comments\" : \"%s\", \"pointsAdjusted\" : %b, \"selectedRatingId\" : \"%s\"  }",
                criterionData.getKey(), points,
                StringEscapeUtils.escapeJson(criterionData.getValue().get("rbcs-criterion-comment")),
                pointsAdjusted, selectedRatingId);
    }

    return criterionJsonData;
}

From source file:org.sakaiproject.rubrics.logic.RubricsServiceImpl.java

private String createCriterionJsonPayload(String associatedItemId, String evaluatedItemId,
        Map<String, String> formPostParameters, Resource<ToolItemRubricAssociation> association)
        throws Exception {

    Map<String, Map<String, String>> criterionDataMap = extractCriterionDataFromParams(formPostParameters);

    String criterionJsonData = "";
    int index = 0;
    boolean pointsAdjusted = false;
    String points = null;// w w  w .j a va  2s  .  c  o  m
    String selectedRatingId = null;

    String inlineRubricUri = String.format("%s?%s", association.getLink("rubric").getHref(),
            "projection=inlineRubric");

    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.add("Authorization",
            String.format("Bearer %s", generateJsonWebToken(association.getContent().getToolId())));
    HttpEntity<?> requestEntity = new HttpEntity<>(headers);
    ResponseEntity<Rubric> rubricEntity = restTemplate.exchange(inlineRubricUri, HttpMethod.GET, requestEntity,
            Rubric.class);

    Map<String, Criterion> criterions = new HashMap<>();
    for (Criterion criterion : rubricEntity.getBody().getCriterions()) {
        criterions.put(String.valueOf(criterion.getId()), criterion);
    }

    for (Map.Entry<String, Map<String, String>> criterionData : criterionDataMap.entrySet()) {
        if (index > 0) {
            criterionJsonData += ", ";
        }
        index++;

        final String selectedRatingPoints = criterionData.getValue()
                .get(RubricsConstants.RBCS_PREFIX + evaluatedItemId + "-" + associatedItemId + "-criterion");

        if (StringUtils.isNotBlank(criterionData.getValue().get(RubricsConstants.RBCS_PREFIX + evaluatedItemId
                + "-" + associatedItemId + "-criterion-override"))) {
            pointsAdjusted = true;
            points = criterionData.getValue().get(RubricsConstants.RBCS_PREFIX + evaluatedItemId + "-"
                    + associatedItemId + "-criterion-override");
        } else {
            pointsAdjusted = false;
            points = selectedRatingPoints;
        }

        Criterion criterion = criterions.get(criterionData.getKey());
        Optional<Rating> rating = criterion.getRatings().stream()
                .filter(c -> String.valueOf(c.getPoints()).equals(selectedRatingPoints)).findFirst();

        if (rating.isPresent()) {
            selectedRatingId = String.valueOf(rating.get().getId());
        }

        if (StringUtils.isEmpty(points)) {
            points = "0";
        }

        criterionJsonData += String
                .format("{ \"criterionId\" : \"%s\", \"points\" : \"%s\", "
                        + "\"comments\" : \"%s\", \"pointsAdjusted\" : %b, \"selectedRatingId\" : \"%s\"  }",
                        criterionData.getKey(), points,
                        StringEscapeUtils
                                .escapeJson(criterionData.getValue()
                                        .get(RubricsConstants.RBCS_PREFIX + evaluatedItemId + "-"
                                                + associatedItemId + "-criterion-comment")),
                        pointsAdjusted, selectedRatingId);
    }

    return criterionJsonData;
}

From source file:org.sakaiproject.rubrics.logic.RubricsServiceImpl.java

@Override
public Map<String, String> transferCopyEntities(String fromContext, String toContext, List<String> ids,
        List<String> options) {

    Map<String, String> transversalMap = new HashMap<>();
    try {/*  ww w.  jav  a 2s. c  om*/
        TypeReferences.ResourcesType<Resource<Rubric>> resourceParameterizedTypeReference = new TypeReferences.ResourcesType<Resource<Rubric>>() {
        };
        URI apiBaseUrl = new URI(serverConfigurationService.getServerUrl() + RBCS_SERVICE_URL_PREFIX);
        Traverson traverson = new Traverson(apiBaseUrl, MediaTypes.HAL_JSON);
        Traverson.TraversalBuilder builder = traverson.follow("rubrics", "search", "rubrics-from-site");

        HttpHeaders headers = new HttpHeaders();
        headers.add("Authorization",
                String.format("Bearer %s", generateJsonWebToken(RubricsConstants.RBCS_TOOL, toContext)));
        builder.withHeaders(headers);

        Map<String, Object> parameters = new HashMap<>();
        parameters.put("siteId", fromContext);

        Resources<Resource<Rubric>> rubricResources = builder.withTemplateParameters(parameters)
                .toObject(resourceParameterizedTypeReference);
        for (Resource<Rubric> rubricResource : rubricResources) {
            RestTemplate restTemplate = new RestTemplate();
            HttpHeaders headers2 = new HttpHeaders();
            headers2.setContentType(MediaType.APPLICATION_JSON);
            headers2.add("Authorization",
                    String.format("Bearer %s", generateJsonWebToken(RubricsConstants.RBCS_TOOL, toContext)));
            HttpEntity<?> requestEntity = new HttpEntity<>(headers2);
            ResponseEntity<Rubric> rubricEntity = restTemplate.exchange(
                    rubricResource.getLink(Link.REL_SELF).getHref() + "?projection=inlineRubric",
                    HttpMethod.GET, requestEntity, Rubric.class);
            Rubric rEntity = rubricEntity.getBody();
            String newId = cloneRubricToSite(String.valueOf(rEntity.getId()), toContext);
            String oldId = String.valueOf(rEntity.getId());
            transversalMap.put(RubricsConstants.RBCS_PREFIX + oldId, RubricsConstants.RBCS_PREFIX + newId);
        }
    } catch (Exception ex) {
        log.info("Exception on duplicateRubricsFromSite: " + ex.getMessage());
    }
    return transversalMap;
}