私は次のシナリオを持っています: Apache HTTPクライアント(Java)を使用して、Webサービスに接続するOracleデータベース(Java SE 6)内で実行されるサーバーがあります。 Webサービスは、Kerberosを使用して、つまりSPNEGO認証を使用して保護する必要があります。GSSManager.createCredentialはKerberosキーとTGTをどのように取得しますか?
私のサーバーには、キータブにエクスポートされたランダムキーを持つKerberosプリンシパルがあり、データベーステーブルにインポートされます。 したがって、KerberosPrincipalには、KerberosKeyオブジェクト(各暗号化メソッドごとに1つ)が関連付けられています。これは、Subject内で収集したすべての情報です。
私は、TGTを取得してSubjectに格納するためにKDCに連絡することを期待しています。それ、どうやったら出来るの?私がこれで見つけたすべてのドキュメントは、これがログインモジュールで起こると仮定していますが、私のシナリオではログインはありません。それとも、私のためにKDCに電話するのですか?
これで、GSSManager.createCredentialを呼び出して、KerberosCredentialsとHttpClientContextに追加できるBasicCredentialsProviderにラップすることができるGSSCredentialを作成する必要があるため、HttpClientはSPNEGO認証を実行できます。
しかし、どのようにしてGSSCredentialに自分のSubjectの情報を取得できますか?