пример ning.http.client Kerberos

#httpclient #kerberos #ning

#httpclient #kerberos #ning

Вопрос:

Как я могу поддерживать аутентификацию на основе Kerberos с помощью ning http-клиента?

Я расширяю существующий код, который поддерживает 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?