我刚刚从 Yodlee 站点下载了示例 java 代码,并将其合并到我的 Web 应用程序中。当我尝试运行时,我在 Cobrand 登录时出错:
Validating Cobrand by Connecting to URL https://rest.developer.yodlee.com/services/srest/restserver/v1.0/authenticate/coblogin
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我认为问题在于我的开发环境(JDeveloper)没有 Yodlee 的 SSL 证书。我搜索了 Yodlee 网站,但没有看到任何提及我可以导入/引用的测试 SSL 证书。
我为 OFX 连接创建了类似的代码,并且遇到了同样的问题。该解决方案是创建一个 EventListener,然后忽略 SSL:
public void SSLServerAuthentication(InvstatementSSLServerAuthenticationEvent invstatementSSLServerAuthenticationEvent) {
invstatementSSLServerAuthenticationEvent.accept = true;
}
我也找不到有关 Yodlee 事件侦听器基类的任何信息。
其他人是如何解决这个问题的?我假设一旦我将它部署到我的生产环境中,我将不得不将 Yodlee SSL 证书导入我的 WebLogic 证书存储......但现在一次一个问题:)
[编辑]
回答我通过更改 JDeveloper 用于其密钥库的位置来解决此问题。它是..../DemoTrust.jks,我将其更改为:C:\Oracle\Middleware11116\jdk160_24\jre\lib\security\cacerts 这是在工具/首选项/凭据下
有人告诉我 DemoTrust.jks 没有很多签名权限,而 cacerts 有。我还需要确保我的生产 WebLogic 服务器使用的是 cacerts 而不是 DemoTrust。显然,在 WebLogic 启动时,如果您指向 DemoTrust,您会收到一个很大的警告。