use of org.springframework.http.client.ClientHttpRequestFactory in project spring-security-oauth by spring-projects.
the class AuthorizationCodeAccessTokenProviderWithConversionTests method testGetAccessTokenFromJson.
@Test
public void testGetAccessTokenFromJson() throws Exception {
final OAuth2AccessToken token = new DefaultOAuth2AccessToken("FOO");
requestFactory = new ClientHttpRequestFactory() {
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException {
return new StubClientHttpRequest(new ObjectMapper().writeValueAsString(token));
}
};
AccessTokenRequest request = new DefaultAccessTokenRequest();
request.setAuthorizationCode("foo");
resource.setAccessTokenUri("http://localhost/oauth/token");
request.setPreservedState(new Object());
setUpRestTemplate();
assertEquals(token, provider.obtainAccessToken(resource, request));
}
use of org.springframework.http.client.ClientHttpRequestFactory in project cas by apereo.
the class CasRestAuthenticationConfiguration method restAuthenticationTemplate.
@Bean
@RefreshScope
public RestTemplate restAuthenticationTemplate() {
try {
final URI casHost = new URI(casProperties.getServer().getName());
final HttpHost host = new HttpHost(casHost.getHost(), casHost.getPort(), casHost.getScheme());
final ClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactoryBasicAuth(host);
return new RestTemplate(factory);
} catch (final Exception e) {
throw Throwables.propagate(e);
}
}
use of org.springframework.http.client.ClientHttpRequestFactory in project uPortal by Jasig.
the class BasicAuthInterceptorTest method doInterceptorTest.
private void doInterceptorTest(PropertyResolver resolver, String id, String expectedAuthCode) throws Exception {
final String url = "http://www.test.com/lrs";
final String data = "test";
final String expectedHeader = "Basic " + expectedAuthCode;
// holder for the headers...
HttpHeaders headers = new HttpHeaders();
// Mock guts of RestTemplate so no need to actually hit the web...
ClientHttpResponse resp = mock(ClientHttpResponse.class);
when(resp.getStatusCode()).thenReturn(HttpStatus.ACCEPTED);
when(resp.getHeaders()).thenReturn(new HttpHeaders());
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ClientHttpRequest client = mock(ClientHttpRequest.class);
when(client.getHeaders()).thenReturn(headers);
when(client.getBody()).thenReturn(buffer);
when(client.execute()).thenReturn(resp);
ClientHttpRequestFactory factory = mock(ClientHttpRequestFactory.class);
when(factory.createRequest(any(URI.class), any(HttpMethod.class))).thenReturn(client);
// add the new interceptor...
BasicAuthInterceptor interceptor = new BasicAuthInterceptor();
interceptor.setPropertyResolver(resolver);
interceptor.setId(id);
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
interceptors.add(interceptor);
RestTemplate rest = new RestTemplate(factory);
rest.setInterceptors(interceptors);
// do it...
rest.postForLocation(url, data, Collections.emptyMap());
// make sure auth header is correctly set...
assertThat(headers, hasKey(Headers.Authorization.name()));
assertThat(headers.get(Headers.Authorization.name()), contains(expectedHeader));
}
use of org.springframework.http.client.ClientHttpRequestFactory in project uPortal by Jasig.
the class ZeroLeggedOAuthInterceptorTest method testInterceptor.
@Test
public void testInterceptor() throws Exception {
final String url = "http://www.test.com/lrs?param1=val1¶m2=val2";
final String data = "test";
final String id = "test";
final String realm = "realm";
final String consumerKey = "consumerKey";
final String secretKey = "secretKey";
PropertyResolver resolver = mock(PropertyResolver.class);
when(resolver.getProperty(Matchers.eq("org.jasig.rest.interceptor.oauth." + id + ".realm"))).thenReturn(realm);
when(resolver.getProperty(Matchers.eq("org.jasig.rest.interceptor.oauth." + id + ".consumerKey"))).thenReturn(consumerKey);
when(resolver.getProperty(Matchers.eq("org.jasig.rest.interceptor.oauth." + id + ".secretKey"))).thenReturn(secretKey);
// holder for the headers...
HttpHeaders headers = new HttpHeaders();
// Mock guts of RestTemplate so no need to actually hit the web...
ClientHttpResponse resp = mock(ClientHttpResponse.class);
when(resp.getStatusCode()).thenReturn(HttpStatus.ACCEPTED);
when(resp.getHeaders()).thenReturn(new HttpHeaders());
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ClientHttpRequest client = mock(ClientHttpRequest.class);
when(client.getHeaders()).thenReturn(headers);
when(client.getBody()).thenReturn(buffer);
when(client.execute()).thenReturn(resp);
ClientHttpRequestFactory factory = mock(ClientHttpRequestFactory.class);
when(factory.createRequest(Matchers.any(URI.class), Matchers.any(HttpMethod.class))).thenReturn(client);
// add the new interceptor...
ZeroLeggedOAuthInterceptor interceptor = new ZeroLeggedOAuthInterceptor();
interceptor.setPropertyResolver(resolver);
interceptor.setId(id);
List<ClientHttpRequestInterceptor> interceptors = new ArrayList<ClientHttpRequestInterceptor>();
interceptors.add(interceptor);
RestTemplate rest = new RestTemplate(factory);
rest.setInterceptors(interceptors);
rest.postForLocation(url, data, Collections.emptyMap());
// make sure auth header is correctly set...
assertThat(headers, hasKey(Headers.Authorization.name()));
String authHeader = headers.get(Headers.Authorization.name()).get(0);
assertThat(authHeader, containsString("OAuth realm=\"" + realm + "\""));
assertThat(authHeader, containsString("oauth_consumer_key=\"" + consumerKey + "\""));
// for now, only supports HMAC-SHA1. May have to fix later...
assertThat(authHeader, containsString("oauth_signature_method=\"HMAC-SHA1\""));
assertThat(authHeader, containsString("oauth_version=\"1.0\""));
assertThat(authHeader, containsString("oauth_timestamp="));
assertThat(authHeader, containsString("oauth_nonce="));
assertThat(authHeader, containsString("oauth_signature="));
// oauth lib will create 2 oauth_signature params if you call sign
// multiple times. Make sure only get 1.
assertThat(StringUtils.countMatches(authHeader, "oauth_signature="), is(1));
}
use of org.springframework.http.client.ClientHttpRequestFactory in project spring-security-oauth by spring-projects.
the class OAuth2RestTemplateTests method testNoRetryAccessDeniedExceptionForNoExistingToken.
@Test(expected = AccessTokenRequiredException.class)
public void testNoRetryAccessDeniedExceptionForNoExistingToken() throws Exception {
restTemplate.setAccessTokenProvider(new StubAccessTokenProvider());
restTemplate.setRequestFactory(new ClientHttpRequestFactory() {
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException {
throw new AccessTokenRequiredException(resource);
}
});
restTemplate.doExecute(new URI("http://foo"), HttpMethod.GET, new NullRequestCallback(), new SimpleResponseExtractor());
}
Aggregations