使用 jcmFIPS jar 在 JBoss 上部署
deploying on JBoss with jcmFIPS jar
我正在尝试使用一些 crystal 对象 jar 部署 war。但是当我在 standalone/deployments 中部署 war 时,我得到了那个异常:
2020-01-31 15:45:07,171 ERROR [stderr] (Thread-98) at com.rsa.jsafe.CryptoJ.isFIPS140Compliant(Unknown Source)
2020-01-31 15:45:07,171 ERROR [stderr] (Thread-98) at com.businessobjects.bcm.internal.BcmRsaLib.initialize(BcmRsaLib.java:214)
2020-01-31 15:45:07,172 ERROR [stderr] (Thread-98) at com.businessobjects.bcm.internal.BcmRsaLib.<clinit>(BcmRsaLib.java:289)
2020-01-31 15:45:07,172 ERROR [stderr] (Thread-98) at com.businessobjects.bcm.BCM.<clinit>(BCM.java:1158)
2020-01-31 15:45:07,173 ERROR [stderr] (Thread-98) at com.crystaldecisions.enterprise.ocaframework.BCMInitializer.run(BCMInitializer.java:29)
2020-01-31 15:45:07,175 ERROR [stderr] (Thread-98) at java.lang.Thread.run(Thread.java:748)
2020-01-31 15:45:07,175 ERROR [stderr] (Thread-98) Caused by: java.lang.SecurityException: Required jcm jar file not found.
2020-01-31 15:45:07,176 ERROR [stderr] (Thread-98) at com.rsa.cryptoj.o.cq.a(Unknown Source)
2020-01-31 15:45:07,176 ERROR [stderr] (Thread-98) at com.rsa.cryptoj.o.co.<clinit>(Unknown Source)
2020-01-31 15:45:07,177 ERROR [stderr] (Thread-98) ... 6 more
没有考虑到这个 jar 在我的 war、WEB_INF/lib 和类路径中。
将 jar 放在预期的目录中可以解决问题,但在生产中当然是不可接受的。
这看起来很奇怪,有人对这种行为有解释吗?
我解决了这个问题。它来自 CryptoJ 库的静态启动器,它试图手动打开另一个 RSA 库(jcmFIPS.jar)。它不起作用,因为它使用的是 JBoss VFS URL 而不是正确的路径。
解决方案是安装 3 个库作为 JBoss 模块:certjFIPS.jar、cryptojFIPS.jar 和 jcmFIPS.jar
我正在尝试使用一些 crystal 对象 jar 部署 war。但是当我在 standalone/deployments 中部署 war 时,我得到了那个异常:
2020-01-31 15:45:07,171 ERROR [stderr] (Thread-98) at com.rsa.jsafe.CryptoJ.isFIPS140Compliant(Unknown Source)
2020-01-31 15:45:07,171 ERROR [stderr] (Thread-98) at com.businessobjects.bcm.internal.BcmRsaLib.initialize(BcmRsaLib.java:214)
2020-01-31 15:45:07,172 ERROR [stderr] (Thread-98) at com.businessobjects.bcm.internal.BcmRsaLib.<clinit>(BcmRsaLib.java:289)
2020-01-31 15:45:07,172 ERROR [stderr] (Thread-98) at com.businessobjects.bcm.BCM.<clinit>(BCM.java:1158)
2020-01-31 15:45:07,173 ERROR [stderr] (Thread-98) at com.crystaldecisions.enterprise.ocaframework.BCMInitializer.run(BCMInitializer.java:29)
2020-01-31 15:45:07,175 ERROR [stderr] (Thread-98) at java.lang.Thread.run(Thread.java:748)
2020-01-31 15:45:07,175 ERROR [stderr] (Thread-98) Caused by: java.lang.SecurityException: Required jcm jar file not found.
2020-01-31 15:45:07,176 ERROR [stderr] (Thread-98) at com.rsa.cryptoj.o.cq.a(Unknown Source)
2020-01-31 15:45:07,176 ERROR [stderr] (Thread-98) at com.rsa.cryptoj.o.co.<clinit>(Unknown Source)
2020-01-31 15:45:07,177 ERROR [stderr] (Thread-98) ... 6 more
没有考虑到这个 jar 在我的 war、WEB_INF/lib 和类路径中。 将 jar 放在预期的目录中可以解决问题,但在生产中当然是不可接受的。
这看起来很奇怪,有人对这种行为有解释吗?
我解决了这个问题。它来自 CryptoJ 库的静态启动器,它试图手动打开另一个 RSA 库(jcmFIPS.jar)。它不起作用,因为它使用的是 JBoss VFS URL 而不是正确的路径。
解决方案是安装 3 个库作为 JBoss 模块:certjFIPS.jar、cryptojFIPS.jar 和 jcmFIPS.jar