2

私は、Java で WebSSO のサービス プロバイダー プラグインを実装しようとしている大学生です。ID プロバイダーとして Shibboleth IdP を使用しています。認証要求を IdP に送信でき、サーブレットを介して IdP からの応答を正常に受信しています。レスポンスのデコードを試みたところ、XMLObject を取得できました。問題は、応答が暗号化されていることです。だから私が使っているとき

Assertion assertion = response.getAssertions().get(0);

基本的に null を返します。しかし、私が使用しているとき

Assertion assertion = response.getEncryptedAssertions().get(0);

null ではありません。したがって、基本的には、応答が暗号化されていることを意味します。これで SAMLReponse の復号化の流れがわかりません。ポインタ、コード、または提案は大歓迎です。

4

1 に答える 1

1

次のようなものを使用できます(オブジェクトに置き換えyourCredentialてください):Credential

StaticKeyInfoCredentialResolver keyresolver =
  new StaticKeyInfoCredentialResolver(yourCredential);

Decrypter samlDecrypter = new Decrypter(null, keyresolver, new InlineEncryptedKeyResolver());

Assertion assertion = samlDecrypter.decrypt(response.getEncryptedAssertions().get(0));

シナリオがより複雑な場合は、shibboleth の wiki でより詳細な例を参照できます:リンク

于 2014-02-19T09:00:35.757 に答える