8

こんにちは、私は Java セキュリティの初心者です。呼び出し時に次の問題が発生します。

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");

エラーが発生しました:

java.lang.ClassCastException: com.sun.crypto.provider.RSACipher cannot be cast to javax.crypto.CipherSpi

私の war ファイルには、支払いゲートウェイの暗号化用にさらに 5 つの jar ファイルがあります。

  • cryptix-jce-api.jar
  • cryptix-jce-provider.jar
  • cryptix-メッセージ-api.jar
  • cryptix-openpgp-provider.jar
  • cryptix-pki-api.jar

これら 5 つの JAR ファイルがなくてもCipher.getInstance()は機能しますが、支払い情報の暗号化に JAR が必要なため、これは不可能です。

誰でも、この問題をどのように克服すればよいかを教えてくれますか?

4

3 に答える 3

19

Powermockito は javax.crypto クラスを拡張できないため、クラス レベルで次の注釈を追加できます。

@PowerMockIgnore("javax.crypto.*") or @PowerMockIgnore({"javax.crypto" })

于 2012-10-16T12:40:41.857 に答える
1

すべてのコメントと回答をありがとう。
最後に、5つのJarをWARファイルからサーバーのJarsライブラリディレクトリに移動し、これを解決しました。
間にありましたjava.lang.RuntimeException: NYI
ここからの解決策を使用して解決されました:http://javabeanz.wordpress.com/2009/06/11/java-lang-runtimeexception-nyi/
これが、そこにいる誰にとっても役立つことを願っています。
もう一度ありがとう!

于 2012-10-19T01:43:49.573 に答える