use of org.springframework.web.client.ResponseErrorHandler in project spring-boot by spring-projects.
the class TestRestTemplateTests method withBasicAuthDoesNotResetErrorHandler.
@Test
public void withBasicAuthDoesNotResetErrorHandler() throws Exception {
TestRestTemplate originalTemplate = new TestRestTemplate("foo", "bar");
ResponseErrorHandler errorHandler = mock(ResponseErrorHandler.class);
originalTemplate.getRestTemplate().setErrorHandler(errorHandler);
TestRestTemplate basicAuthTemplate = originalTemplate.withBasicAuth("user", "password");
assertThat(basicAuthTemplate.getRestTemplate().getErrorHandler()).isSameAs(errorHandler);
}
use of org.springframework.web.client.ResponseErrorHandler in project spring-security-oauth by spring-projects.
the class OAuth2ErrorHandlerTests method testBodyCanBeUsedByCustomHandler.
@Test
public void testBodyCanBeUsedByCustomHandler() throws Exception {
final String appSpecificBodyContent = "{\"some_status\":\"app error\"}";
OAuth2ErrorHandler handler = new OAuth2ErrorHandler(new ResponseErrorHandler() {
public boolean hasError(ClientHttpResponse response) throws IOException {
return true;
}
public void handleError(ClientHttpResponse response) throws IOException {
InputStream body = response.getBody();
byte[] buf = new byte[appSpecificBodyContent.length()];
int readResponse = body.read(buf);
Assert.assertEquals(buf.length, readResponse);
Assert.assertEquals(appSpecificBodyContent, new String(buf, "UTF-8"));
throw new RuntimeException("planned");
}
}, resource);
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Length", "" + appSpecificBodyContent.length());
headers.set("Content-Type", "application/json");
InputStream appSpecificErrorBody = new ByteArrayInputStream(appSpecificBodyContent.getBytes("UTF-8"));
ClientHttpResponse response = new TestClientHttpResponse(headers, 400, appSpecificErrorBody);
expected.expectMessage("planned");
handler.handleError(response);
}
use of org.springframework.web.client.ResponseErrorHandler in project spring-security-oauth by spring-projects.
the class OAuth2ErrorHandlerTests method testCustomHandler.
@Test
public void testCustomHandler() throws Exception {
OAuth2ErrorHandler handler = new OAuth2ErrorHandler(new ResponseErrorHandler() {
public boolean hasError(ClientHttpResponse response) throws IOException {
return true;
}
public void handleError(ClientHttpResponse response) throws IOException {
throw new RuntimeException("planned");
}
}, resource);
HttpHeaders headers = new HttpHeaders();
ClientHttpResponse response = new TestClientHttpResponse(headers, 401);
expected.expectMessage("planned");
handler.handleError(response);
}
use of org.springframework.web.client.ResponseErrorHandler in project spring-security-oauth by spring-projects.
the class AbstractAuthorizationCodeProviderTests method setupAccessTokenProvider.
@BeforeOAuth2Context
public void setupAccessTokenProvider() {
accessTokenProvider = new AuthorizationCodeAccessTokenProvider() {
private ResponseExtractor<OAuth2AccessToken> extractor = super.getResponseExtractor();
private ResponseExtractor<ResponseEntity<Void>> authExtractor = super.getAuthorizationResponseExtractor();
private ResponseErrorHandler errorHandler = super.getResponseErrorHandler();
@Override
protected ResponseErrorHandler getResponseErrorHandler() {
return new DefaultResponseErrorHandler() {
public void handleError(ClientHttpResponse response) throws IOException {
response.getHeaders();
response.getStatusCode();
tokenEndpointResponse = response;
errorHandler.handleError(response);
}
};
}
@Override
protected ResponseExtractor<OAuth2AccessToken> getResponseExtractor() {
return new ResponseExtractor<OAuth2AccessToken>() {
public OAuth2AccessToken extractData(ClientHttpResponse response) throws IOException {
try {
response.getHeaders();
response.getStatusCode();
tokenEndpointResponse = response;
return extractor.extractData(response);
} catch (ResourceAccessException e) {
return null;
}
}
};
}
@Override
protected ResponseExtractor<ResponseEntity<Void>> getAuthorizationResponseExtractor() {
return new ResponseExtractor<ResponseEntity<Void>>() {
public ResponseEntity<Void> extractData(ClientHttpResponse response) throws IOException {
response.getHeaders();
response.getStatusCode();
tokenEndpointResponse = response;
return authExtractor.extractData(response);
}
};
}
};
context.setAccessTokenProvider(accessTokenProvider);
}
use of org.springframework.web.client.ResponseErrorHandler in project spring-security-oauth by spring-projects.
the class AbstractClientCredentialsProviderTests method testInvalidCredentials.
@Test
@OAuth2ContextConfiguration(resource = InvalidClientCredentials.class, initialize = false)
public void testInvalidCredentials() throws Exception {
context.setAccessTokenProvider(new ClientCredentialsAccessTokenProvider() {
@Override
protected ResponseErrorHandler getResponseErrorHandler() {
return new DefaultResponseErrorHandler() {
public void handleError(ClientHttpResponse response) throws IOException {
responseHeaders = response.getHeaders();
responseStatus = response.getStatusCode();
}
};
}
});
try {
context.getAccessToken();
fail("Expected ResourceAccessException");
} catch (Exception e) {
// System.err.println(responseHeaders);
// ignore
}
String header = responseHeaders.getFirst("WWW-Authenticate");
assertTrue("Wrong header: " + header, header.contains("Basic realm"));
assertEquals(HttpStatus.UNAUTHORIZED, responseStatus);
}
Aggregations