kerberos/HTTP ホストで認証しようとしています。Apache HttpClient をクライアントとして使用 -このソースのわずかに変更されたバージョン。 私の Kerberos 認証は問題なく動作します。ログイン資格情報をプログラムで設定する方法を知りたいです。現時点では、資格情報はコンソールから手動で入力されていますが、実行時に選択できるようにしたいと考えています。[実際には、多数のユーザーを使用してサーバーを自動化し、負荷テストを行いたいと考えています。]。
編集:関連する部分のコードスニペットは次のとおりです。
..
NegotiateSchemeFactory nsf = new NegotiateSchemeFactory();
httpclient.getAuthSchemes().register(AuthPolicy.SPNEGO, nsf);
Credentials use_jaas_creds = new Credentials() {
public String getPassword() {
return null;
}
public Principal getUserPrincipal() {
return null;
}
};
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(null, -1, null),
use_jaas_creds);
HttpUriRequest request = new HttpGet("http://kerberoshost/");
HttpResponse response = httpclient.execute(request);
..
インターフェイスCredentials
には と の 2 つのメソッドがgetPassword()
ありますgetUserPrincipal()
が、私が行ったいくつかのデバッグから、それらはまったく呼び出されていないようです。
ここで何が欠けていますか? 資格情報を静的に設定するよりクリーンな方法は何ですか?
非常によく似た質問が以前に尋ねられましたが、keytabs/login.conf のハックは面倒すぎて、多数のユーザー資格情報を使用した自動負荷テストの実用的なオプションではありません。これに関する助けに感謝します。