List of usage examples for org.springframework.web.client RestTemplate exchange
@Override public <T> ResponseEntity<T> exchange(String url, HttpMethod method, @Nullable HttpEntity<?> requestEntity, ParameterizedTypeReference<T> responseType, Map<String, ?> uriVariables) throws RestClientException
From source file:com.bose.aem.spring.config.ConfigServicePropertySourceLocator.java
private Environment getRemoteEnvironment(RestTemplate restTemplate, String uri, String name, String profile, String label) {/* w w w . ja v a 2 s .c o m*/ String path = "/{name}/{profile}"; Object[] args = new String[] { name, profile }; if (StringUtils.hasText(label)) { args = new String[] { name, profile, label }; path = path + "/{label}"; } ResponseEntity<Environment> response = null; try { response = restTemplate.exchange(uri + path, HttpMethod.GET, new HttpEntity<Void>((Void) null), Environment.class, args); } catch (HttpClientErrorException e) { if (e.getStatusCode() != HttpStatus.NOT_FOUND) { throw e; } } if (response == null || response.getStatusCode() != HttpStatus.OK) { return null; } Environment result = response.getBody(); return result; }
From source file:org.trustedanalytics.servicebroker.gearpump.service.CloudFoundryService.java
private ResponseEntity<String> executeWithHeaders(String url, HttpMethod method, String body, HttpHeaders headers, Object... urlVariables) throws RestClientException { RestTemplate restTemplate = cfCaller.createRestTemplate(); HttpEntity<String> request = cfCaller.createJsonRequest(body, headers); URI expanded = (new UriTemplate(url)).expand(urlVariables); LOGGER.info("Performing call: {}", expanded.toString()); ResponseEntity<String> response = restTemplate.exchange(url, method, request, String.class, urlVariables); LOGGER.debug("Response status: {}", response.getStatusCode()); return response; }
From source file:org.cloudfoundry.identity.uaa.api.common.impl.UaaConnectionHelper.java
/** * Make a REST call with custom headers//from www . j ava 2 s . co m * * @param method the Http Method (GET, POST, etc) * @param uri the URI of the endpoint (relative to the base URL set in the constructor) * @param body the request body * @param responseType the object type to be returned * @param uriVariables any uri variables * @return the response body * @see org.springframework.web.client.RestTemplate#exchange(String, HttpMethod, HttpEntity, ParameterizedTypeReference, Object...) */ private <RequestType, ResponseType> ResponseType exchange(HttpMethod method, HttpHeaders headers, RequestType body, String uri, ParameterizedTypeReference<ResponseType> responseType, Object... uriVariables) { getHeaders(headers); RestTemplate template = new RestTemplate(); template.setInterceptors(LoggerInterceptor.INTERCEPTOR); HttpEntity<RequestType> requestEntity = null; if (body == null) { requestEntity = new HttpEntity<RequestType>(headers); } else { requestEntity = new HttpEntity<RequestType>(body, headers); } // combine url into the varargs List<Object> varList = new ArrayList<Object>(); varList.add(url); if (uriVariables != null && uriVariables.length > 0) { varList.addAll(Arrays.asList(uriVariables)); } ResponseEntity<ResponseType> responseEntity = template.exchange("{base}" + uri, method, requestEntity, responseType, varList.toArray()); if (HttpStatus.Series.SUCCESSFUL.equals(responseEntity.getStatusCode().series())) { return responseEntity.getBody(); } else { return null; } }
From source file:org.cloudfoundry.identity.uaa.integration.feature.SamlLoginWithLocalIdpIT.java
public static SamlServiceProvider createOrUpdateSamlServiceProvider(String accessToken, String url, SamlServiceProvider provider) {/*from ww w .j av a 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 " + accessToken); headers.add("Content-Type", MediaType.APPLICATION_JSON_VALUE); headers.add(IdentityZoneSwitchingFilter.HEADER, provider.getIdentityZoneId()); List<SamlServiceProvider> existing = getSamlServiceProviders(accessToken, url, provider.getIdentityZoneId()); if (existing != null) { for (SamlServiceProvider p : existing) { if (p.getEntityId().equals(provider.getEntityId()) && p.getIdentityZoneId().equals(provider.getIdentityZoneId())) { provider.setId(p.getId()); HttpEntity<SamlServiceProvider> putHeaders = new HttpEntity<SamlServiceProvider>(provider, headers); ResponseEntity<String> providerPut = client.exchange(url + "/saml/service-providers/{id}", HttpMethod.PUT, putHeaders, String.class, provider.getId()); if (providerPut.getStatusCode() == HttpStatus.OK) { return JsonUtils.readValue(providerPut.getBody(), SamlServiceProvider.class); } } } } HttpEntity<SamlServiceProvider> postHeaders = new HttpEntity<SamlServiceProvider>(provider, headers); ResponseEntity<String> providerPost = client.exchange(url + "/saml/service-providers/{id}", HttpMethod.POST, postHeaders, String.class, provider.getId()); if (providerPost.getStatusCode() == HttpStatus.CREATED) { return JsonUtils.readValue(providerPost.getBody(), SamlServiceProvider.class); } throw new IllegalStateException( "Invalid result code returned, unable to create identity provider:" + providerPost.getStatusCode()); }
From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java
public static ScimGroup getGroup(String token, String zoneId, String url, String displayName) { 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); }/*ww w . j av a 2s . co m*/ ResponseEntity<SearchResults<ScimGroup>> findGroup = template.exchange( url + "/Groups?filter=displayName eq \"{groupId}\"", HttpMethod.GET, new HttpEntity(headers), new ParameterizedTypeReference<SearchResults<ScimGroup>>() { }, displayName); if (findGroup.getBody().getTotalResults() == 0) { return null; } else { return findGroup.getBody().getResources().iterator().next(); } }
From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java
public static ScimGroup updateGroup(String token, String zoneId, String url, ScimGroup group) { RestTemplate template = new RestTemplate(); MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); headers.add("Accept", APPLICATION_JSON_VALUE); headers.add("Authorization", "bearer " + token); headers.add("If-Match", "*"); headers.add("Content-Type", APPLICATION_JSON_VALUE); if (StringUtils.hasText(zoneId)) { headers.add(IdentityZoneSwitchingFilter.HEADER, zoneId); }/* w w w . j a v a 2 s .c o m*/ ResponseEntity<ScimGroup> updateGroup = template.exchange(url + "/Groups/{groupId}", HttpMethod.PUT, new HttpEntity(JsonUtils.writeValueAsBytes(group), headers), ScimGroup.class, group.getId()); assertEquals(HttpStatus.OK, updateGroup.getStatusCode()); return updateGroup.getBody(); }
From source file:org.cloudfoundry.identity.uaa.integration.util.IntegrationTestUtils.java
public static IdentityProvider createOrUpdateProvider(String accessToken, String url, IdentityProvider provider) {/*from w ww . j ava2s. c om*/ RestTemplate client = new RestTemplate(); MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); headers.add("Accept", APPLICATION_JSON_VALUE); headers.add("Authorization", "bearer " + accessToken); headers.add("Content-Type", APPLICATION_JSON_VALUE); headers.add(IdentityZoneSwitchingFilter.HEADER, provider.getIdentityZoneId()); List<IdentityProvider> existing = getProviders(accessToken, url, provider.getIdentityZoneId()); if (existing != null) { for (IdentityProvider p : existing) { if (p.getOriginKey().equals(provider.getOriginKey()) && p.getIdentityZoneId().equals(provider.getIdentityZoneId())) { provider.setId(p.getId()); HttpEntity putHeaders = new HttpEntity(provider, headers); ResponseEntity<String> providerPut = client.exchange(url + "/identity-providers/{id}", HttpMethod.PUT, putHeaders, String.class, provider.getId()); if (providerPut.getStatusCode() == HttpStatus.OK) { return JsonUtils.readValue(providerPut.getBody(), IdentityProvider.class); } } } } HttpEntity postHeaders = new HttpEntity(provider, headers); ResponseEntity<String> providerPost = client.exchange(url + "/identity-providers/{id}", HttpMethod.POST, postHeaders, String.class, provider.getId()); if (providerPost.getStatusCode() == HttpStatus.CREATED) { return JsonUtils.readValue(providerPost.getBody(), IdentityProvider.class); } throw new IllegalStateException( "Invalid result code returned, unable to create identity provider:" + providerPost.getStatusCode()); }
From source file:org.springframework.batch.admin.web.server.JsonIntegrationTests.java
@Test public void testListedResourcesWithGet() throws Exception { Map<String, String> params = new HashMap<String, String>(); params.put("jobName", "job2"); // These should be there if the previous test cases worked params.put("jobInstanceId", "0"); params.put("jobExecutionId", "0"); params.put("stepExecutionId", "0"); RestTemplate template = new RestTemplate(); PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); propertiesFactoryBean.setLocation(//from w w w .j a v a2 s.c o m new ClassPathResource("/org/springframework/batch/admin/web/manager/json-resources.properties")); propertiesFactoryBean.afterPropertiesSet(); Properties properties = propertiesFactoryBean.getObject(); for (String path : properties.stringPropertyNames()) { if (!StringUtils.hasText(path) || !path.startsWith("GET")) { continue; } path = path.substring(path.indexOf("/")); ResponseEntity<String> result = template.exchange(serverRunning.getUrl() + path, HttpMethod.GET, null, String.class, params); JsonWrapper wrapper = new JsonWrapper(result.getBody()); // System.err.println(wrapper); assertNotNull(wrapper); } }
From source file:org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.java
private Environment getRemoteEnvironment(RestTemplate restTemplate, ConfigClientProperties properties, String label, String state) { String path = "/{name}/{profile}"; String name = properties.getName(); String profile = properties.getProfile(); String token = properties.getToken(); String uri = properties.getRawUri(); Object[] args = new String[] { name, profile }; if (StringUtils.hasText(label)) { args = new String[] { name, profile, label }; path = path + "/{label}"; }/*from w ww. j a v a 2s . c o m*/ ResponseEntity<Environment> response = null; try { HttpHeaders headers = new HttpHeaders(); if (StringUtils.hasText(token)) { headers.add(TOKEN_HEADER, token); } if (StringUtils.hasText(state)) { //TODO: opt in to sending state? headers.add(STATE_HEADER, state); } final HttpEntity<Void> entity = new HttpEntity<>((Void) null, headers); response = restTemplate.exchange(uri + path, HttpMethod.GET, entity, Environment.class, args); } catch (HttpClientErrorException e) { if (e.getStatusCode() != HttpStatus.NOT_FOUND) { throw e; } } if (response == null || response.getStatusCode() != HttpStatus.OK) { return null; } Environment result = response.getBody(); return result; }