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.feature.SamlLoginWithLocalIdpIT.java

public static List<SamlServiceProvider> getSamlServiceProviders(String zoneAdminToken, String url,
        String zoneId) {//from w ww.j a  va  2  s  .  c om
    RestTemplate client = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + zoneAdminToken);
    headers.add("Content-Type", MediaType.APPLICATION_JSON_VALUE);
    headers.add(IdentityZoneSwitchingFilter.HEADER, zoneId);
    HttpEntity<String> getHeaders = new HttpEntity<String>(headers);
    ResponseEntity<String> providerGet = client.exchange(url + "/saml/service-providers", HttpMethod.GET,
            getHeaders, String.class);
    if (providerGet != null && providerGet.getStatusCode() == HttpStatus.OK) {
        return JsonUtils.readValue(providerGet.getBody(), new TypeReference<List<SamlServiceProvider>>() {
            // Do nothing.
        });
    }
    return null;
}

From source file:org.cloudfoundry.identity.uaa.integration.RemoteAuthenticationEndpointTests.java

@SuppressWarnings("rawtypes")
ResponseEntity<Map> authenticate(String username, String password, Map<String, Object> additionalParams) {
    RestTemplate restTemplate = new RestTemplate();
    // The default java.net client doesn't allow you to handle 4xx responses
    restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
    if (restTemplate instanceof OAuth2RestTemplate) {
        OAuth2RestTemplate oAuth2RestTemplate = (OAuth2RestTemplate) restTemplate;
        oAuth2RestTemplate.setErrorHandler(
                new UaaOauth2ErrorHandler(oAuth2RestTemplate.getResource(), HttpStatus.Series.SERVER_ERROR));
    } else {/* ww  w .  j  a  v  a 2s . c  o  m*/
        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
            @Override
            protected boolean hasError(HttpStatus statusCode) {
                return statusCode.series() == HttpStatus.Series.SERVER_ERROR;
            }
        });
    }
    HttpHeaders headers = new HttpHeaders();
    if (additionalParams != null) {
        headers.add("Authorization", "Bearer " + getLoginReadBearerToken());
    }
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

    MultiValueMap<String, Object> parameters = new LinkedMultiValueMap<String, Object>();
    parameters.set("username", username);
    if (password != null) {
        parameters.set("password", password);
    }
    if (additionalParams != null) {
        parameters.setAll(additionalParams);
    }

    ResponseEntity<Map> result = restTemplate.exchange(serverRunning.getUrl("/authenticate"), HttpMethod.POST,
            new HttpEntity<MultiValueMap<String, Object>>(parameters, headers), Map.class);
    return result;
}

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

public static ScimUser updateUser(String token, String url, ScimUser user) {
    RestTemplate template = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + token);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    headers.add("If-Match", String.valueOf(user.getVersion()));
    HttpEntity getHeaders = new HttpEntity(user, headers);
    ResponseEntity<ScimUser> userInfoGet = template.exchange(url + "/Users/" + user.getId(), HttpMethod.PUT,
            getHeaders, ScimUser.class);
    if (userInfoGet.getStatusCode() == HttpStatus.OK) {
        return userInfoGet.getBody();
    }//from w  ww  . ja  v a 2 s.  c om
    throw new RuntimeException("Invalid return code:" + userInfoGet.getStatusCode());
}

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

public static ScimUser getUserByZone(String token, String url, String subdomain, String username) {
    RestTemplate template = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + token);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    headers.add("X-Identity-Zone-Subdomain", subdomain);
    HttpEntity getHeaders = new HttpEntity(headers);
    ResponseEntity<String> userInfoGet = template.exchange(
            url + "/Users" + "?filter=userName eq \"" + username + "\"", HttpMethod.GET, getHeaders,
            String.class);
    ScimUser user = null;//from w  ww .  j  a  va 2s . c o  m
    if (userInfoGet.getStatusCode() == HttpStatus.OK) {

        SearchResults<ScimUser> results = JsonUtils.readValue(userInfoGet.getBody(), SearchResults.class);
        List<ScimUser> resources = (List) results.getResources();
        if (resources.size() < 1) {
            return null;
        }
        user = JsonUtils.readValue(JsonUtils.writeValueAsString(resources.get(0)), ScimUser.class);
    }
    return user;
}

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

public static ScimUser getUser(String token, String url, String userId) {
    RestTemplate template = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + token);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    HttpEntity getHeaders = new HttpEntity(headers);
    ResponseEntity<ScimUser> userInfoGet = template.exchange(url + "/Users/" + userId, HttpMethod.GET,
            getHeaders, ScimUser.class);
    if (userInfoGet.getStatusCode() == HttpStatus.OK) {
        return userInfoGet.getBody();
    }/*www.  ja v  a  2s  . c o  m*/
    throw new RuntimeException("Invalid return code:" + userInfoGet.getStatusCode());
}

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

public static String getUserIdByField(String token, String url, String origin, String field,
        String fieldValue) {//from ww  w.  j  av a2 s  .  co m
    RestTemplate template = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + token);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    HttpEntity getHeaders = new HttpEntity(headers);
    ResponseEntity<String> userInfoGet = template.exchange(url + "/Users" + "?attributes=id" + "&filter="
            + field + " eq \"" + fieldValue + "\" and origin eq \"" + origin + "\"", HttpMethod.GET, getHeaders,
            String.class);
    if (userInfoGet.getStatusCode() == HttpStatus.OK) {

        HashMap results = JsonUtils.readValue(userInfoGet.getBody(), HashMap.class);
        List resources = (List) results.get("resources");
        if (resources.size() < 1) {
            return null;
        }
        HashMap resource = (HashMap) resources.get(0);
        return (String) resource.get("id");
    }
    throw new RuntimeException("Invalid return code:" + userInfoGet.getStatusCode());
}

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

public static void deleteUser(String zoneAdminToken, String url, String userId) {

    RestTemplate template = 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);
    HttpEntity deleteHeaders = new HttpEntity(headers);
    ResponseEntity<String> userDelete = template.exchange(url + "/Users/" + userId, HttpMethod.DELETE,
            deleteHeaders, String.class);
    if (userDelete.getStatusCode() != HttpStatus.OK) {
        throw new RuntimeException("Invalid return code:" + userDelete.getStatusCode());
    }/*from w  ww. ja v a  2 s.c  o m*/
}

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

public static ScimGroup createGroup(String token, String zoneId, String url, ScimGroup group) {
    RestTemplate template = new RestTemplate();
    template.setErrorHandler(fiveHundredErrorHandler);
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + token);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    if (StringUtils.hasText(zoneId)) {
        headers.add(IdentityZoneSwitchingFilter.HEADER, zoneId);
    }//from   w w w  . j  a  v  a 2 s . co  m
    ResponseEntity<ScimGroup> createGroup = template.exchange(url + "/Groups", HttpMethod.POST,
            new HttpEntity(JsonUtils.writeValueAsBytes(group), headers), ScimGroup.class);
    assertEquals(HttpStatus.CREATED, createGroup.getStatusCode());
    return createGroup.getBody();
}

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

public static ScimGroupExternalMember mapExternalGroup(String token, String zoneId, String url,
        ScimGroupExternalMember scimGroup) {

    RestTemplate template = new RestTemplate();
    MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
    headers.add("Accept", APPLICATION_JSON_VALUE);
    headers.add("Authorization", "bearer " + token);
    headers.add("Content-Type", APPLICATION_JSON_VALUE);
    if (StringUtils.hasText(zoneId)) {
        headers.add(IdentityZoneSwitchingFilter.HEADER, zoneId);
    }/*from  ww  w  . ja v  a  2  s  . co  m*/
    ResponseEntity<ScimGroupExternalMember> mapGroup = template.exchange(url + "/Groups/External",
            HttpMethod.POST, new HttpEntity(JsonUtils.writeValueAsBytes(scimGroup), headers),
            ScimGroupExternalMember.class);
    if (HttpStatus.CREATED.equals(mapGroup.getStatusCode())) {
        return mapGroup.getBody();
    } else if (HttpStatus.CONFLICT.equals(mapGroup.getStatusCode())) {
        return scimGroup;
    }
    throw new IllegalArgumentException("Invalid status code:" + mapGroup.getStatusCode());
}

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

public static BaseClientDetails createClientAsZoneAdmin(String zoneAdminToken, String url, String zoneId,
        BaseClientDetails client) throws Exception {

    RestTemplate template = 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(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);
    }/* www  . ja  v  a 2  s .  co  m*/
    throw new RuntimeException("Invalid return code:" + clientCreate.getStatusCode());
}