Java源码示例:org.apache.http.conn.ssl.BrowserCompatHostnameVerifier

示例1
public AbstractRestTemplateClient ignoreAuthenticateServer() {
    //backward compatible with android httpclient 4.3.x
    if(restTemplate.getRequestFactory() instanceof HttpComponentsClientHttpRequestFactory) {
        try {
            SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build();
            X509HostnameVerifier verifier = ignoreSslWarning ? new AllowAllHostnameVerifier() : new BrowserCompatHostnameVerifier();
            SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext, verifier);
            HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(socketFactory).build();
            ((HttpComponentsClientHttpRequestFactory)restTemplate.getRequestFactory()).setHttpClient(httpClient);
        } catch (Exception e) {
            e.printStackTrace();
        }
    } else {
        Debug.error("the request factory " + restTemplate.getRequestFactory().getClass().getName() + " does not support ignoreAuthenticateServer");
    }
    return this;
}
 
示例2
public HostnameVerifier getHostnameVerifier() {
    if (provider == null) {
        return null;
    }

    HostnameVerificationPolicy policy = provider.getPolicy();
    switch (policy) {
        case ANY:
            return new HostnameVerifier() {
                @Override
                public boolean verify(String s, SSLSession sslSession) {
                    return true;
                }
            };
        case WILDCARD:
            return new BrowserCompatHostnameVerifier();
        case STRICT:
            return new StrictHostnameVerifier();
        default:
            throw new IllegalStateException("Unknown policy: " + policy.name());
    }
}