小编Sub*_*ran的帖子

apache httpclient 4.4:HostnameVerifier从4.3.x过渡

HttpClient 4.3有三个静态变量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.阅读文档,我认为这DefaultHostnameVerifier是一个直接替代STRICT_HOSTNAME_VERIFIER.这也ALLOW_ALL__HOSTNAME_VERIFIER很容易实现:

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;
    }

}
Run Code Online (Sandbox Code Playgroud)

STRICT_HOSTNAME_VERIFIERBROWSER_COMPATIBLE_HOSTNAME_VERIFIER(来自JavaDoc)之间有一个微妙的区别:

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

我们是否有一个现成BROWSER_COMPATIBLE的httpclient 4.4主机名验证程序?

java apache-httpclient-4.x

15
推荐指数
3
解决办法
1万
查看次数

commander.js:使用 action() 传递命令的 isDefault 选项

根据commander.js自述文件,我可以指定默认命令:

var program = ...;

program
  ...
  .command('list', 'list packages installed', {isDefault: true})
  .parse(process.argv);
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我使用.command()不带描述参数的.action(). 我尝试将第二个参数null和第三个选项传递给isDefault:true. 但它似乎不起作用:

program.command('help', null, {isDefault:true})
  .description('display help information.')
  .action(function(){
    program.outputHelp();
  });
Run Code Online (Sandbox Code Playgroud)

如何传递isDefault:true给命令.action()

javascript command-line-interface node.js

5
推荐指数
1
解决办法
1108
查看次数