在EJBCA中安装Bouncy Castle提供程序时出错。

时间:2015-08-06 11:22:20

标签: java bouncycastle ejbca

嗨!

我试图通过我的java应用程序提供的Web服务访问EJBCA服务器。我正在尝试从官方文档(http://ejbca.org/docs/adminguide.html#Using%20the%20Web%20Service%20API%20for%20Integration)运行以下代码段:

  CryptoProviderTools.installBCProvider();  
  String urlstr = "https://localhost:8443/ejbca/ejbcaws/ejbcaws?wsdl";

  System.setProperty("javax.net.ssl.trustStore","p12/wstest.jks");
  System.setProperty("javax.net.ssl.trustStorePassword","foo123");  

  System.setProperty("javax.net.ssl.keyStore","p12/wstest.jks");
  System.setProperty("javax.net.ssl.keyStorePassword","foo123");      

  QName qname = new QName("http://ws.protocol.core.ejbca.org/", "EjbcaWSService");
  EjbcaWSService service = new EjbcaWSService(new URL(urlstr),qname);
  ejbcaraws = service.getEjbcaWSPort();

然而,第一行给了我一个ClassCastException:org.bouncycastle.jce.provider.BouncyCastleProvider cannot be cast to org.bouncycastle.jce.interfaces.ConfigurableProvider。我已经检查过BouncyCastleProvider确实实现了ConfigurableProvider接口。

更奇怪的是,当我调用该函数两次(CryptoProviderTools.installBCProvider())时,我第二次得到NoSuchFieldError,原因如下:java.lang.NoSuchFieldError: SN

非常感谢你的帮助:))

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我找到了这份文件" The Cryptoworkshop Java Cryptography Guide and the Bouncy Castle API"在http://www.cryptoworkshop.com/guide/cwguide-070313.pdf

说: 要在运行时安装提供程序,只需添加: Security.addProvider(new BouncyCastleProvider());

这还需要导入:

import java.security.Security; import org.bouncycastle.jce.provider.BouncyCastleProvider;

如果我检查供应商,我确实看到BC

    Provider[] myProviders = Security.getProviders();

    for (Provider prov : myProviders) {
        System.out.println("Prov:" + prov.getName());
    }

(需要导入import java.security.Provider)

但是当我尝试从ejbca获取任何信息时我就陷入了困境

管理员未获得资源/管理员授权。消息:。

希望能帮到你。