解决调用三方接口读取秘钥证书异常问题

编程

java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big.

at sun.security.util.DerInputStream.getLength(DerInputStream.java:599)

at sun.security.util.DerValue.init(DerValue.java:365)

at sun.security.util.DerValue.<init>(DerValue.java:320)

at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1914)

at java.security.KeyStore.load(KeyStore.java:1445)

分析

由于单元测试是可以正常通过,并且项目运行debug发现是有读取到文件流,初步怀疑是证书文件被修改。将证书文件直接放入target目录下,发现可以正常运行。

因此定位异常问题是由于maven-resources-plugin的问题

解决

在pom.xml文件中加入以下配置,过滤后缀为.p12的文件,问题解决

<plugin>

<artifactId>maven-resources-plugin</artifactId>

<version>3.1.0</version>

<configuration>

<encoding>utf-8</encoding>

<!-- 解决Spring boot引起的profile失效问题 -->

<useDefaultDelimiters>true</useDefaultDelimiters>

<!-- 过滤后缀为p12、pem、pfx的证书文件 -->

<nonFilteredFileExtensions>

<nonFilteredFileExtension>p12</nonFilteredFileExtension>

<nonFilteredFileExtension>cer</nonFilteredFileExtension>

<nonFilteredFileExtension>pem</nonFilteredFileExtension>

<nonFilteredFileExtension>pfx</nonFilteredFileExtension>

</nonFilteredFileExtensions>

</configuration>

</plugin>

以上是 解决调用三方接口读取秘钥证书异常问题 的全部内容, 来源链接: utcz.com/z/516709.html

回到顶部