0

我将 JKS 文件放入src/main/resources/truststore/xyz.jks并希望在 Spring 配置中使用它,以便在 Mule 3 中通过 SSL 进行 JDBC 连接。

如果我在 Anypoint Studio 中运行配置,则该配置有效,但 RTF(Anypoint Runtime Fabric)部署返回错误:

java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

我可以像${app.home}/truststore/xyz.jks在 Mule 4 中一样访问它,但它不适用于 Mule 3。

如何为 Mule3 应用程序的 RTF 部署中的 jks 文件配置路径?

trustStore=${mule.home}/apps/${app.name}/classes/truststore/xyz.jks
<spring:beans>
        <spring:bean id="validDataSource" name="validDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <spring:property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
            <spring:property name="jdbcUrl" value="jdbc:sqlserver://${database.server.url}:${database.server.port};DatabaseName=${database.suburb.name};encrypt=true;trustServerCertificate=false;trustStore=${mule.home}/apps/${app.name}/classes/truststore/xyz.jks;trustStorePassword=${db.trustStorePassword};hostNameInCertificate=${database.server.url}"/>
4

1 回答 1

0

路径似乎是正确构建的。验证信任库文件是否实际包含在可部署的 zip 文件中。使用任何工具检查或解压缩 zip 文件并查看该文件是否位于预期目录(类/信任库)。

例如,如果您使用 Maven 和 Maven 资源插件,它可能不会被打包。如果这是问题,您可以明确避免在插件中过滤:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>jks</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>

来源:https ://help.mulesoft.com/s/article/Getting-java-security-InvalidAlgorithmParameterException-the-trustAnchors-parameter-must-be-non-empty-in-cloudhub

可能还有其他一些原因会阻止将文件添加到 Maven 构建中。您必须分析它或共享 pom.xml。

于 2021-11-24T20:45:58.653 回答