zoukankan      html  css  js  c++  java
  • OkHttp Client Ignore certificate

    import okhttp3.*;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import javax.net.ssl.*;
    import java.net.*;
    import java.security.cert.CertificateException;
    
    /*
    okhttp version used 3.8.1
    */
    public class OkHttpUtil {
    
        private static final Logger LOGGER = LoggerFactory.getLogger(OkHttpUtil.class.getName());
    
        private static OkHttpClient client = null;
        private static boolean ignoreSslCertificate = false;
    
        public static OkHttpClient getClient() {
            return client;
        }
    
        public static void init(boolean ignoreCertificate) throws Exception {
    
            OkHttpClient.Builder builder = new OkHttpClient.Builder();
    
            LOGGER.info("Initialising httpUtil with default configuration");
            if (ignoreCertificate) {
                ignoreSslCertificate = true;
                builder = configureToIgnoreCertificate(builder);
            }
    
            //Other application specific configuration
    
            client = builder.build();
        }
    
        //Setting testMode configuration. If set as testMode, the connection will skip certification check
        private static OkHttpClient.Builder configureToIgnoreCertificate(OkHttpClient.Builder builder) {
            LOGGER.warn("Ignore Ssl Certificate");
            try {
    
                // Create a trust manager that does not validate certificate chains
                final TrustManager[] trustAllCerts = new TrustManager[] {
                        new X509TrustManager() {
                            @Override
                            public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
                                    throws CertificateException {
                            }
    
                            @Override
                            public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
                                    throws CertificateException {
                            }
    
                            @Override
                            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                                return new java.security.cert.X509Certificate[]{};
                            }
                        }
                };
    
                // Install the all-trusting trust manager
                final SSLContext sslContext = SSLContext.getInstance("SSL");
                sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
                // Create an ssl socket factory with our all-trusting manager
                final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
    
                builder.sslSocketFactory(sslSocketFactory, (X509TrustManager)trustAllCerts[0]);
                builder.hostnameVerifier(new HostnameVerifier() {
                    @Override
                    public boolean verify(String hostname, SSLSession session) {
                        return true;
                    }
                });
            } catch (Exception e) {
                LOGGER.warn("Exception while configuring IgnoreSslCertificate" + e, e);
            }
            return builder;
        }
    
    }

    https://gist.github.com/preethamhegdes/fcab7bced52bf2520994ce232f2102ed

  • 相关阅读:
    服务端TextBox焦点事件
    Ajax进度条动画制作网址
    ADSL错误代码大全
    ASP.NET MVC Framework体验(5):路径选择(URL Routing)(转)
    为表添加一列IsUpload默认值为0
    ASP.NET MVC Framework体验(3):表单提交(转)
    .NET开源项目
    Vista文件共享
    mysql的to_days函数
    Samba简介
  • 原文地址:https://www.cnblogs.com/talentzemin/p/13536056.html
Copyright © 2011-2022 走看看