首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring引导和JCA提供程序

Spring引导和JCA提供程序
EN

Stack Overflow用户
提问于 2016-12-05 13:35:11
回答 1查看 10K关注 0票数 1

我有一个Spring (1.4.2.RELEASE)项目,它在pom.xml中作为依赖项赏金城堡,如下所示:

代码语言:javascript
复制
pom.xml
...
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcprov-jdk15on</artifactId>
  <version>1.54</version>
</dependency>
<dependency>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcpkix-jdk15on</artifactId>
  <version>1.54</version>
</dependency>
...

但是,当我试图在代码中指定"BC“作为JCA操作的提供程序时,例如:

Signature aSig = Signature.getInstance("SHA256withRSA","BC");

我得到了标准,没有这样的提供者例外:

java.security.NoSuchProviderException: no such provider: BC

尽管有条目

security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider

在jre的java.security文件中。

在我的pom文件中有这个依赖项,构建的jar在BOOT-INF/lib文件夹中有一个有弹性的城堡罐子:

代码语言:javascript
复制
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是否要求提供程序jars位于jre/lib/ext中?

...or,我是不是错过了什么?

编辑:

然而,这一点:

Signature.getInstance("SHA256withRSA",new BouncyCastleProvider());

很管用。

EN

回答 1

Stack Overflow用户

发布于 2016-12-06 22:04:16

在使用Bouncycastle之前,您需要安装它。请参阅http://www.bouncycastle.org/wiki/display/JA1/Provider+Installation

动态安装提供程序

代码语言:javascript
复制
import org.bouncycastle.jce.provider.BouncyCastleProvider;
...
Security.addProvider(new BouncyCastleProvider());

以静态方式安装提供程序

将提供程序添加为$JAVA_HOME/jre/lib/security/java.security中的最后一个条目

代码语言:javascript
复制
security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider

将弹跳城堡提供者jar添加到$JAVA_HOME/jre/lib/ext

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40975510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档