Merge pull request #82 from Doha2012/master
upgrade class HttpsClientSslLiveTest
This commit is contained in:
		
						commit
						44aa281ea6
					
				| @ -7,6 +7,7 @@ import java.io.IOException; | ||||
| import java.security.GeneralSecurityException; | ||||
| import java.security.cert.X509Certificate; | ||||
| 
 | ||||
| import javax.net.ssl.SSLContext; | ||||
| import javax.net.ssl.SSLException; | ||||
| 
 | ||||
| import org.apache.http.HttpResponse; | ||||
| @ -17,6 +18,7 @@ import org.apache.http.conn.scheme.Scheme; | ||||
| import org.apache.http.conn.scheme.SchemeRegistry; | ||||
| import org.apache.http.conn.ssl.SSLConnectionSocketFactory; | ||||
| import org.apache.http.conn.ssl.SSLContextBuilder; | ||||
| import org.apache.http.conn.ssl.SSLContexts; | ||||
| import org.apache.http.conn.ssl.SSLSocketFactory; | ||||
| import org.apache.http.conn.ssl.TrustSelfSignedStrategy; | ||||
| import org.apache.http.conn.ssl.TrustStrategy; | ||||
| @ -33,78 +35,85 @@ import org.junit.Test; | ||||
|  * */ | ||||
| public class HttpsClientSslLiveTest { | ||||
| 
 | ||||
|     // "https://localhost:8443/spring-security-rest-basic-auth/api/bars/1" // local | ||||
|     // "https://mms.nw.ru/" // hosted | ||||
|     private static final String HOST_WITH_SSL = "https://mms.nw.ru/"; | ||||
| 	// "https://localhost:8443/spring-security-rest-basic-auth/api/bars/1" // local | ||||
| 	// "https://mms.nw.ru/" // hosted | ||||
| 	private static final String HOST_WITH_SSL = "https://mms.nw.ru/"; | ||||
| 
 | ||||
|     // tests | ||||
| 	// tests | ||||
| 
 | ||||
|     @Test(expected = SSLException.class) | ||||
|     public final void whenHttpsUrlIsConsumed_thenException() throws ClientProtocolException, IOException { | ||||
|         final CloseableHttpClient httpClient = HttpClientBuilder.create().build(); | ||||
| 	@Test(expected = SSLException.class) | ||||
| 	public final void whenHttpsUrlIsConsumed_thenException() throws ClientProtocolException, IOException { | ||||
| 		final CloseableHttpClient httpClient = HttpClientBuilder.create().build(); | ||||
| 
 | ||||
|         final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
|         final HttpResponse response = httpClient.execute(getMethod); | ||||
|         assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
|     } | ||||
| 		final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
| 		final HttpResponse response = httpClient.execute(getMethod); | ||||
| 		assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
| 	} | ||||
| 
 | ||||
|     @SuppressWarnings("deprecation") | ||||
|     @Test | ||||
|     public final void givenHttpClientPre4_3_whenAcceptingAllCertificates_thenCanConsumeHttpsUriWithSelfSignedCertificate() throws IOException, GeneralSecurityException { | ||||
|         final TrustStrategy acceptingTrustStrategy = new TrustStrategy() { | ||||
|             @Override | ||||
|             public final boolean isTrusted(final X509Certificate[] certificate, final String authType) { | ||||
|                 return true; | ||||
|             } | ||||
|         }; | ||||
|         final SSLSocketFactory sf = new SSLSocketFactory(acceptingTrustStrategy, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); | ||||
|         final SchemeRegistry registry = new SchemeRegistry(); | ||||
|         registry.register(new Scheme("https", 443, sf)); | ||||
|         final ClientConnectionManager ccm = new PoolingClientConnectionManager(registry); | ||||
| 	@SuppressWarnings("deprecation") | ||||
| 	@Test | ||||
| 	public final void givenHttpClientPre4_3_whenAcceptingAllCertificates_thenCanConsumeHttpsUriWithSelfSignedCertificate() throws IOException, GeneralSecurityException { | ||||
| 		final TrustStrategy acceptingTrustStrategy = new TrustStrategy() { | ||||
| 			@Override | ||||
| 			public final boolean isTrusted(final X509Certificate[] certificate, final String authType) { | ||||
| 				return true; | ||||
| 			} | ||||
| 		}; | ||||
| 		final SSLSocketFactory sf = new SSLSocketFactory(acceptingTrustStrategy, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); | ||||
| 		final SchemeRegistry registry = new SchemeRegistry(); | ||||
| 		registry.register(new Scheme("https", 443, sf)); | ||||
| 		final ClientConnectionManager ccm = new PoolingClientConnectionManager(registry); | ||||
| 
 | ||||
|         final CloseableHttpClient httpClient = new DefaultHttpClient(ccm); | ||||
| 		final CloseableHttpClient httpClient = new DefaultHttpClient(ccm); | ||||
| 
 | ||||
|         final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
|         final HttpResponse response = httpClient.execute(getMethod); | ||||
|         assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
| 		final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
| 		final HttpResponse response = httpClient.execute(getMethod); | ||||
| 		assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
| 
 | ||||
|         httpClient.close(); | ||||
|     } | ||||
| 		httpClient.close(); | ||||
| 	} | ||||
| 
 | ||||
|     @Test | ||||
|     public final void givenHttpClientAfter4_3_whenAcceptingAllCertificates_thenCanConsumeHttpsUriWithSelfSignedCertificate() throws IOException, GeneralSecurityException { | ||||
|         final TrustStrategy acceptingTrustStrategy = new TrustStrategy() { | ||||
|             @Override | ||||
|             public final boolean isTrusted(final X509Certificate[] certificate, final String authType) { | ||||
|                 return true; | ||||
|             } | ||||
|         }; | ||||
|         final SSLSocketFactory sf = new SSLSocketFactory(acceptingTrustStrategy, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); | ||||
|         final SchemeRegistry registry = new SchemeRegistry(); | ||||
|         registry.register(new Scheme("https", 443, sf)); | ||||
|         final ClientConnectionManager ccm = new PoolingClientConnectionManager(registry); | ||||
| 	@Test | ||||
| 	public final void givenHttpClientAfter4_3_whenAcceptingAllCertificates_thenCanConsumeHttpsUriWithSelfSignedCertificate() throws IOException, GeneralSecurityException { | ||||
| 		final TrustStrategy acceptingTrustStrategy = new TrustStrategy() { | ||||
| 			@Override | ||||
| 			public final boolean isTrusted(final X509Certificate[] certificate, final String authType) { | ||||
| 				return true; | ||||
| 			} | ||||
| 		}; | ||||
| 		final SSLContext sslContext = SSLContexts.custom() | ||||
| 				.loadTrustMaterial(null, acceptingTrustStrategy).build(); | ||||
| 
 | ||||
|         final CloseableHttpClient httpClient = new DefaultHttpClient(ccm); | ||||
| 		final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( | ||||
| 				sslContext, | ||||
| 				SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); | ||||
| 
 | ||||
|         final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
|         final HttpResponse response = httpClient.execute(getMethod); | ||||
|         assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
| 		final CloseableHttpClient httpClient = HttpClients | ||||
| 				.custom() | ||||
| 				.setHostnameVerifier( | ||||
| 						SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER) | ||||
| 						.setSSLSocketFactory(sslsf).build(); | ||||
| 
 | ||||
|         httpClient.close(); | ||||
|     } | ||||
| 
 | ||||
|     @Test | ||||
|     public final void givenHttpClientPost4_3_whenAcceptingAllCertificates_thenCanConsumeHttpsUriWithSelfSignedCertificate() throws IOException, GeneralSecurityException { | ||||
|         final SSLContextBuilder builder = new SSLContextBuilder(); | ||||
|         builder.loadTrustMaterial(null, new TrustSelfSignedStrategy()); | ||||
|         final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build()); | ||||
|         final CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslsf).build(); | ||||
| 		final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
| 		final HttpResponse response = httpClient.execute(getMethod); | ||||
| 		assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
| 
 | ||||
|         // new | ||||
| 		httpClient.close(); | ||||
| 	} | ||||
| 
 | ||||
|         final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
|         final HttpResponse response = httpClient.execute(getMethod); | ||||
|         assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
|     } | ||||
| 	@Test | ||||
| 	public final void givenHttpClientPost4_3_whenAcceptingAllCertificates_thenCanConsumeHttpsUriWithSelfSignedCertificate() throws IOException, GeneralSecurityException { | ||||
| 		final SSLContextBuilder builder = new SSLContextBuilder(); | ||||
| 		builder.loadTrustMaterial(null, new TrustSelfSignedStrategy()); | ||||
| 		final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build()); | ||||
| 		final CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslsf).build(); | ||||
| 
 | ||||
| 		// new | ||||
| 
 | ||||
| 		final HttpGet getMethod = new HttpGet(HOST_WITH_SSL); | ||||
| 		final HttpResponse response = httpClient.execute(getMethod); | ||||
| 		assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user