下面列出了org.springframework.http.client.ClientHttpRequestInterceptor#intercept ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private HttpRequest invokeInterceptors(RestOperations restOperations)
throws IOException {
assertThat(restOperations).isInstanceOf(RestTemplate.class);
RestTemplate restTemplate = (RestTemplate) restOperations;
MockClientHttpRequest request = new MockClientHttpRequest();
ClientHttpRequestExecution execution = Mockito
.mock(ClientHttpRequestExecution.class);
byte[] body = new byte[] {};
for (ClientHttpRequestInterceptor interceptor : restTemplate.getInterceptors()) {
interceptor.intercept(request, body, execution);
}
return request;
}
@Test
public void securityAwareClientHttpRequestInterceptorSetsHttpRequestHeaders() throws IOException {
ClientHttpRequestExecution mockExecution = mock(ClientHttpRequestExecution.class);
Environment mockEnvironment = mock(Environment.class);
when(mockEnvironment.getProperty(eq("spring.data.gemfire.security.username"))).thenReturn("master");
when(mockEnvironment.getProperty(eq("spring.data.gemfire.security.password"))).thenReturn("s3cr3t");
HttpHeaders httpHeaders = new HttpHeaders();
HttpRequest mockHttpRequest = mock(HttpRequest.class);
when(mockHttpRequest.getHeaders()).thenReturn(httpHeaders);
ClientHttpRequestInterceptor interceptor =
new HttpBasicAuthenticationSecurityConfiguration.SecurityAwareClientHttpRequestInterceptor(mockEnvironment);
byte[] body = new byte[0];
interceptor.intercept(mockHttpRequest, body, mockExecution);
assertThat(httpHeaders.getFirst(GeodeConstants.USERNAME)).isEqualTo("master");
assertThat(httpHeaders.getFirst(GeodeConstants.PASSWORD)).isEqualTo("s3cr3t");
verify(mockHttpRequest, times(1)).getHeaders();
verify(mockExecution, times(1)).execute(eq(mockHttpRequest), eq(body));
}
@Test
public void securityAwareClientHttpRequestInterceptorWillNotSetHttpRequestHeadersWhenCredentialsAreIncomplete()
throws IOException {
ClientHttpRequestExecution mockExecution = mock(ClientHttpRequestExecution.class);
Environment mockEnvironment = mock(Environment.class);
when(mockEnvironment.getProperty(eq("spring.data.gemfire.security.username"))).thenReturn("master");
HttpHeaders httpHeaders = new HttpHeaders();
HttpRequest mockHttpRequest = mock(HttpRequest.class);
when(mockHttpRequest.getHeaders()).thenReturn(httpHeaders);
ClientHttpRequestInterceptor interceptor =
new HttpBasicAuthenticationSecurityConfiguration.SecurityAwareClientHttpRequestInterceptor(mockEnvironment);
byte[] body = new byte[0];
interceptor.intercept(mockHttpRequest, body, mockExecution);
assertThat(httpHeaders.containsKey(GeodeConstants.USERNAME)).isFalse();
assertThat(httpHeaders.containsKey(GeodeConstants.PASSWORD)).isFalse();
verify(mockHttpRequest, never()).getHeaders();
verify(mockExecution, times(1)).execute(eq(mockHttpRequest), eq(body));
}