解决调用三方接口读取秘钥证书异常问题
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