0

我正在尝试为一些使用 oracle 的服务添加对钱包登录的支持,但是我遇到了这个我不太明白的问题。

基本情况是我使用了一个实现 ojdbc8-production 的公司共享库,并且这个共享库已经在其他服务中用于设置连接池并从钱包中提取凭据。让我难过的是它在我自己的环境中运行 jar 时可以工作,但是当我尝试在 docker 容器中运行它时,我得到一个异常,内容如下:

Caused by: oracle.security.crypto.asn1.ASN1FormatException: Got tag 7830 instead of 16.
oracle.security.crypto.asn1.ASN1Header.checkTag(Unknown Source)
oracle.security.crypto.asn1.ASN1ConstructedInputStream.<init>(Unknown Source)
oracle.security.crypto.asn1.ASN1SequenceInputStream.<init>(Unknown Source)
oracle.security.crypto.cert.PKCS12.input(PKCS12.java:166)
oracle.security.crypto.cert.PKCS12.<init>(PKCS12.java:135)
oracle.security.pki.OracleKeyStoreSpi.load(Unknown Source)
oracle.security.pki.OracleKeyStoreSpi.engineLoad(Unknown Source)
oracle.security.pki.OracleSSOKeyStoreSpi.engineLoad(Unknown Source)
oracle.security.pki.OracleSecretStore.load(Unknown Source)

我已经尝试了通常的方法,使用另一个钱包或检查访问权限是否正常,但似乎没有任何结果产生不同的结果。任何关于这个库如何工作的建议或信息都将不胜感激,因为我很难找到这个 oracle.security.pki(简称 orapki)的文档。

提前致谢。

4

1 回答 1

0

我已经将此追溯到文件本身(cwallet.sso)在安装过程中以某种方式被修改。我会建议其他有同样问题的人从对容器内的文件进行 cksum 开始。如果我弄清楚这是什么原因,将发布更新。

编辑:想通了!基本上,我使用的是一个 maven 模块,它通过使用 docker-compose 设置服务来进行健全性测试。该组合最终使用 /target 中的文件而不是 /src。现在我仍然不知道为什么这会有所不同,但是当钱包文件生成到目标文件夹时,它们一定发生了一些变化。

于 2021-12-17T10:58:51.637 回答