Java (org.opensaml) で SAML 応答 XML を生成しようとしています。rsa-sha256 アルゴリズムを使用して署名を生成しようとすると、例外が発生します。
java.security.NoSuchAlgorithmException: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 Signature not available
正確な理由はわかりません。署名は私には正しいようです。依存関係を追加する必要がありますか? 誰でもこれで私を助けてもらえますか? 署名値も生成するコードを追加しました。
public static String generateSignatureValue(String signatureMessage, String signatureAlgorithm,
String privateKeyString)
throws NoSuchAlgorithmException, InvalidKeySpecException, InvalidKeyException, SignatureException {
KeyFactory kf = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec keySpecPKCS8 = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKeyString));
PrivateKey privateKey = kf.generatePrivate(keySpecPKCS8);
Signature rsaSha256Signature = Signature.getInstance(signatureAlgorithm);
rsaSha256Signature.initSign(privateKey);
rsaSha256Signature.update(signatureMessage.getBytes());
byte[] signed2 = rsaSha256Signature.sign();
return Base64.getEncoder().encodeToString(signed2);
}