org.springframework.http.client.ClientHttpRequestInterceptor#intercept ( )源码实例Demo

下面列出了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));
}