List of usage examples for org.springframework.web.client RestTemplate exchange
@Override public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType) throws RestClientException
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()); }