/*
|
* Copyright 2020. Huawei Technologies Co., Ltd. All rights reserved.
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
you may not use this file except in compliance with the License.
|
You may obtain a copy of the License at
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
Unless required by applicable law or agreed to in writing, software
|
distributed under the License is distributed on an "AS IS" BASIS,
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
See the License for the specific language governing permissions and
|
limitations under the License.
|
*/
|
package com.huawei.push.util;
|
|
import org.apache.http.config.Registry;
|
import org.apache.http.config.RegistryBuilder;
|
import org.apache.http.conn.socket.ConnectionSocketFactory;
|
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
|
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
|
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
import java.security.KeyManagementException;
|
import java.security.NoSuchAlgorithmException;
|
import java.security.cert.CertificateException;
|
|
/**
|
* A tool for ignoring ssl when creating httpclient
|
*/
|
public class IgnoreSSLUtils {
|
private static SSLContext createIgnoreVerifySSL() throws NoSuchAlgorithmException, KeyManagementException {
|
SSLContext sc = SSLContext.getInstance("TLSv1.2");
|
|
X509TrustManager trustManager = new X509TrustManager() {
|
@Override
|
public void checkClientTrusted(
|
java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
|
String paramString) throws CertificateException {
|
}
|
|
@Override
|
public void checkServerTrusted(
|
java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
|
String paramString) throws CertificateException {
|
}
|
|
@Override
|
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
return null;
|
}
|
};
|
|
sc.init(null, new TrustManager[]{trustManager}, null);
|
return sc;
|
}
|
|
/**
|
* for ignoring verify SSL
|
*/
|
public static CloseableHttpClient createClient() throws KeyManagementException, NoSuchAlgorithmException {
|
SSLContext sslcontext = createIgnoreVerifySSL();
|
|
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
|
.register("http", PlainConnectionSocketFactory.INSTANCE)
|
.register("https", new SSLConnectionSocketFactory(sslcontext))
|
.build();
|
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
|
HttpClients.custom().setConnectionManager(connManager);
|
|
return HttpClients.custom().setConnectionManager(connManager).build();
|
}
|
}
|