apache httpclient 4.4:从4.3.x迁移HostnameVerifier [英] apache httpclient 4.4: HostnameVerifier transition from 4.3.x

查看:182
本文介绍了apache httpclient 4.4:从4.3.x迁移HostnameVerifier的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HttpClient 4.3在org.apache.http.conn.ssl.SSLConnectionSocketFactory中具有三个静态变量:

HttpClient 4.3 had three static variables in org.apache.http.conn.ssl.SSLConnectionSocketFactory:

  1. STRICT_HOSTNAME_VERIFIER
  2. BROWSER_COMPATIBLE_HOSTNAME_VERIFIER
  3. ALLOW_ALL__HOSTNAME_VERIFIER

将依赖项升级到HttpClient的版本4.4时,我发现上述所有常量均已弃用. JavaDoc中的弃用说明提到使用org.apache.http.conn.ssl.DefaultHostnameVerifier.阅读文档时,我假设DefaultHostnameVerifierSTRICT_HOSTNAME_VERIFIER的直接替代.而且ALLOW_ALL__HOSTNAME_VERIFIER易于实现:

When upgrading the dependency to version 4.4 of HttpClient, I see that all the above constants are deprecated. The deprecation note in JavaDoc mentioned to use org.apache.http.conn.ssl.DefaultHostnameVerifier. Reading the docs, I assume that DefaultHostnameVerifier is a direct replacement to STRICT_HOSTNAME_VERIFIER. Also the ALLOW_ALL__HOSTNAME_VERIFIER is easy to implement:

package org.wiztools.restclient.http;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;

/**
 *
 * @author subwiz
 */
public class AllowAllHostnameVerifier implements HostnameVerifier {

    @Override
    public boolean verify(String string, SSLSession ssls) {
        return true;
    }

}

STRICT_HOSTNAME_VERIFIERBROWSER_COMPATIBLE_HOSTNAME_VERIFIER(来自JavaDoc)之间有细微的区别:

There is a subtle distinction between the STRICT_HOSTNAME_VERIFIER and BROWSER_COMPATIBLE_HOSTNAME_VERIFIER (from JavaDoc):

BROWSER_COMPATIBLE和STRICT之间的唯一区别是,带有BROWSER_COMPATIBLE的通配符(例如"* .foo.com")与所有子域匹配,包括"a.b.foo.com".

The only difference between BROWSER_COMPATIBLE and STRICT is that a wildcard (such as "*.foo.com") with BROWSER_COMPATIBLE matches all subdomains, including "a.b.foo.com".

对于httpclient 4.4,我们是否有随时可用的BROWSER_COMPATIBLE主机名验证程序?

Do we have a readily available BROWSER_COMPATIBLE hostname verifier for httpclient 4.4?

推荐答案

实际上,AllowAllHostnameVerifier 直接替换ALLOW_ALL__HOSTNAME_VERIFIER,即

Actually, the javadoc of AllowAllHostnameVerifier gives a direct replacement for ALLOW_ALL__HOSTNAME_VERIFIER, which is NoopHostnameVerifier .

这篇关于apache httpclient 4.4:从4.3.x迁移HostnameVerifier的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆