首页 > 解决方案 > ning.http.client Kerberos 示例

问题描述

如何使用 ning http 客户端支持基于 Kerberos 的身份验证?

我正在扩展支持 NTLMAuth 的现有代码,并且我希望能够包含对 Kerberos 的支持,它在我需要测试的一些网站上使用。

我希望能够以编程方式输入用户名和密码,我不想使用 keyTab,或者在运行它的系统上设置 krb5 配置。

我有以下代码块;

import com.ning.http.client.RequestBuilder;
import com.ning.http.client.Realm.RealmBuilder;

....

        RealmBuilder myRealmBuilder = new RealmBuilder()
                .setScheme(AuthScheme.KERBEROS)
                .setUsePreemptiveAuth(true)
                .setNtlmDomain(getDomain())
                .setNtlmHost(getHost())
                .setPrincipal(getUsername())
                .setPassword(getUserPassword()));

        RequestBuilder rb = new RequestBuilder()
                .setMethod(site.getMethod())
                .setUrl(site.getUrl())
                .setFollowRedirects(site.isFollowRedirects())
                .setRealm(myRealmBuilder), 
                site)

´´´

Currently I get the error response: 
FAILED: Invalid name provided (Mechanism level: KrbException: Cannot locate default realm)

Does anyone have an good example of how to do this correctly?

标签: httpclientkerberosning

解决方案


推荐阅读