当前位置: 首页 > 知识库问答 >
问题:

在Websphere liberty profile中使用bouncycastle

子车劲
2023-03-14

我们的应用程序使用Bouncycastle。我现在试图在websphere liberty profile上部署我的应用程序,并得到以下错误

[err] java.io.IOException: error constructing MAC: java.lang.SecurityException: JCE cannot authenticate the provider BC
[err]   at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source)
[err]   at java.security.KeyStore.load(KeyStore.java:1214)
[err]   at com.manh.jwt.JwtKeyManager.loadPrivateKeyByIssuer(JwtKeyManager.java:213)

因此,我没有将bouncycastle jar放在WEB-INF/lib目录中,而是创建了一个共享库,并将这个库作为privateLibraryRef添加到我的WEB应用程序中。我仍然得到同样的错误。

这是我的服务器.xml供您参考。

<server description="new server">

<!-- Enable features -->
<featureManager>
    <feature>jsp-2.2</feature>
    <feature>servlet-3.0</feature>
</featureManager>
<webContainer deferServletLoad="false" />
<httpEndpoint id="defaultHttpEndpoint"
              host="localhost"
              httpPort="20000"
              httpsPort="9443" />

<library id="configResources">
    <folder dir="${server.config.dir}/conf" />
</library>      


<library id="bc">
    <fileset dir="${server.config.dir}/bclib" includes="*.jar" />
</library>      

<webApplication name="scope" location="scope.war" contextRoot="/">
    <classloader privateLibraryRef="configResources, bc" />
</webApplication>
</server>

有没有其他的设置,我可以尝试让这个工作?

共有1个答案

蓝昊天
2023-03-14

这是让Bouncy Castle密码与WAS Liberty一起工作的神奇之处,这也应该适用于堆叠的产品。

    < li >在服务器的工作目录中创建" jvm.options "文件。在默认安装中,这将是wlp/usr/servers/ < li >将以下内容添加到" jvm.options "文件中。< br > a .-DJ ava . ext . dirs =//我用/opt/fun/libs和wlp/usr/servers/defaultServer和WLP/usr/servers/default server/libs测试了这个。三个都有效。如果我包含一个到WEB-INF/lib目录的路径,它会失败。b .-dorg . OSGi . framework . boot delegation = org . bouncy castle . JCE . provider < li >将bouncy castle jar从WEB-INF/lib目录复制到java.ext.dirs定义的目录(如上)。 < li >停止并启动服务器,因为您正在更改JVM参数。 < li >测试应用程序或堆叠产品。
 类似资料:
  • 问题内容: 我正在尝试使用Java中的BouncyCastle使用ECC算法对某些内容进行加密。但是我对BouncyCastle库的说法例外:无法转换为。我理解的是,所产生的公共密钥是不能在java的使用方法。有人可以告诉我如何将其转换为公钥或X509规范,以便可以将其用于加密。 这是我尝试过的代码 我也尝试将公钥转换为X509EncodedSpec,但出现相同的异常 我得到的例外是 编辑 基于注

  • 我一直试图获得一个简单的web操作来向API发出一个经过身份验证的get请求(我已经从示例代码中删除了实际的url和秘密)。 我已经在本地成功地运行了这一点,但是当我测试web动作时,它只是在记录“调用Axios”之后死亡。 它不会报告错误,我尝试实现一个承诺,认为线程在api响应之前就结束了,但没有效果。有什么线索吗?

  • 问题内容: 我想使用Android Studio使用Gradle构建工具开发应用程序。我无法在上插入存储库和库。我的文件如下: 如何在项目中添加OpenCV? 问题答案: 您可以在Android Studio中轻松完成此操作。 请按照以下步骤将Open CV作为库添加到您的项目中。 libraries在项目主目录下创建一个文件夹。例如,如果您的项目是OpenCVExamples,则将创建一个Ope

  • 我想使用Android Studio开发一个应用程序使用Gradle构建工具。我无法在上插入OpenCV repo和库。我的文件如下所示: 我如何在我的项目中添加OpenCV?

  • 问题内容: 我有一个简单的Entitly类,(和单独类中的字段)。然后,我使用Spring Data()访问数据库(MySql),使用常规ID,查询可以正常工作,无论是Spring生成的查询还是我自己编写的查询。与我没有设法创建正确的查询。我想做的是选择所有id(发生某些情况的EmbeddedId字段之一),这里有一些代码示例,也许有人会知道如何解决它。 实体类: EmbeddedId类: 和存储

  • 问题内容: 我正在研究控制建筑物的光和热的项目。后端(用Java编写)将在Mac Mini上运行,并且应该可以通过SOAP进行访问。 我希望将此项目的复杂性降至最低,因为我不希望每个使用它的人都必须设置应用程序服务器。所以到目前为止,我一直使用javax.xml.ws.Endpoint: 这样的效果出奇的好(嘿,您什么时候最后一次只用3行代码看到Java中的东西?),但是现在我正在寻找一种使用HT