【问题标题】:Apache HttpComponents HttpClient 5.0 - Kerberos SPNEGO clientApache HttpComponents HttpClient 5.0 - Kerberos SPNEGO 客户端
【发布时间】:2020-09-27 04:12:48
【问题描述】:

我正在尝试将我的 HttpClient 4.x 代码移植到 5.x

Lookup<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
            .register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory(true)).build();

但是在 5.x 中不再有 AuthSchemeProvider,并且 SPNegoSchemeFactory 有一个不同的构造函数:-/

【问题讨论】:

    标签: apache-httpclient-5.x


    【解决方案1】:

    这样有什么问题?

    final Registry<AuthSchemeFactory> schemeFactoryRegistry = RegistryBuilder.<AuthSchemeFactory>create()
            .register(StandardAuthScheme.BASIC, BasicSchemeFactory.INSTANCE)
            .register(StandardAuthScheme.DIGEST, DigestSchemeFactory.INSTANCE)
            .register(StandardAuthScheme.NTLM, NTLMSchemeFactory.INSTANCE)
            .register(StandardAuthScheme.SPNEGO, new SPNegoSchemeFactory(
                    KerberosConfig.custom()
                            .setStripPort(KerberosConfig.Option.DEFAULT)
                            .setUseCanonicalHostname(KerberosConfig.Option.DEFAULT)
                            .build(),
                    SystemDefaultDnsResolver.INSTANCE))
            .register(StandardAuthScheme.KERBEROS, KerberosSchemeFactory.DEFAULT)
            .build();
    

    【讨论】:

    • 代码可以编译,很好,但我仍然收到 401 错误:-/ 你有完整的客户端实现吗?
    • 在您的问题中,您询问了有关将一段代码从 HC 4.x 移植到 HC 5.x 的问题。现在你问的是完全不同的东西。 SPNEGO 在 HC 中被标记为实验性的。作为一个项目,我们并不真正支持它。
    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多