Spring boot and JCA providers
我在pom.xml中有一个以bouncycastle作为依赖项的Spring boot(1.4.2.RELEASE)项目,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 | pom.xml ... <dependency> <groupId>org.bouncycastle</groupId> bcprov-jdk15on</artifactId> <version>1.54</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> bcpkix-jdk15on</artifactId> <version>1.54</version> </dependency> ... |
但是,当我尝试在我的代码中将" BC"指定为JCA操作的提供者时,例如:
我得到标准没有此类提供程序例外:
尽管有进入
在我的jre的java.security文件中。
在我的pom文件中有了这种依赖关系之后,构建的jar在BOOT-INF / lib文件夹中有充气城堡jar:
1 2 | 3277268 Tue Dec 29 12:46:28 EST 2015 BOOT-INF/lib/bcprov-jdk15on-1.54.jar 673715 Tue Dec 29 12:46:02 EST 2015 BOOT-INF/lib/bcpkix-jdk15on-1.54.jar |
我可以毫无问题地访问它们中的类,但是JCA找不到提供程序。
那么,JCA是否要求提供程序jar位于jre / lib / ext中?
...或者我只是想念一些东西?
编辑:
但是,这:
作品。
您需要先安装Bouncycastle提供程序,然后才能使用它。 参见http://www.bouncycastle.org/wiki/display/JA1/Provider+安装
动态安装提供程序
1 2 3 | import org.bouncycastle.jce.provider.BouncyCastleProvider; ... Security.addProvider(new BouncyCastleProvider()); |
静态安装提供程序
将提供程序添加为
1 | security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider |
将Bouncy Castle提供程序jar添加到