Make TestRestTemplate not extend RestTemplate
Update TestRestTemplate so that it no longer directly extends RestTemplate. Prior to this commit it was possible that TestRestTemplate could interfere with user defined RestTemplate beans. TestRestTemplate offers the same methods as RestTemplate so should be a drop-in replacement. If access is needed to the actual underlying template the `getRestTemplate()` method should be used. Fixes gh-5915
This commit is contained in:
@@ -16,11 +16,6 @@
|
||||
|
||||
package sample.jetty.ssl;
|
||||
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
||||
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.ssl.SSLContextBuilder;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@@ -28,9 +23,9 @@ import org.springframework.boot.context.embedded.LocalServerPort;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
@@ -51,16 +46,7 @@ public class SampleJettySslApplicationTests {
|
||||
|
||||
@Test
|
||||
public void testHome() throws Exception {
|
||||
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(
|
||||
new SSLContextBuilder()
|
||||
.loadTrustMaterial(null, new TrustSelfSignedStrategy()).build());
|
||||
|
||||
HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(socketFactory)
|
||||
.build();
|
||||
|
||||
TestRestTemplate testRestTemplate = new TestRestTemplate();
|
||||
((HttpComponentsClientHttpRequestFactory) testRestTemplate.getRequestFactory())
|
||||
.setHttpClient(httpClient);
|
||||
TestRestTemplate testRestTemplate = new TestRestTemplate(HttpClientOption.SSL);
|
||||
ResponseEntity<String> entity = testRestTemplate
|
||||
.getForEntity("https://localhost:" + this.port, String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||
|
||||
Reference in New Issue
Block a user