我必须在我的开发(Spring应用程序)中包含google recaptcha。我有google密钥和密钥进行验证,一切正常。
现在我将recaptcha验证片移到另一个基于休息服务的应用程序上,这样我就可以使用rest服务来利用/更改任何键或url等等。设置是我在server1中有其他服务应用程序(部署在weblogic中,但添加了JAVA_OPTS参数以使用sun库)和tomcat与我的应用程序在服务器2上。所以当我部署这个并访问时,我在验证响应时收到错误
(mapcar (lambda (n) (root-path '(A (B) (C (D) (E))) n))
'(a b c d e f))
=> ((a) (a b) (a c) (a c d) (a c e) nil)
我在server1和server2密钥库之间同步了所有密钥,但我仍然看到错误。
我的代码中的错误如下:
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
我在这里遗漏了什么?感谢。
注意:我可以通过浏览器访问https://www.google.com/recaptcha/api/siteverify网址。
答案 0 :(得分:1)
我能够解决这个问题。网站http://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed.html帮助了我。
我必须在我的weblogic密钥库中添加Google证书。它默认存在于cacerts中,但不存在于DemoTrust.jks
中再次感谢Hrabosch。
答案 1 :(得分:0)
您确定自己拥有正确的证书路径吗?当你移动你的recaptcha片段时,它应该在另一个具有不同证书路径的服务器(server1?)上构建。这个错误就是这个。在JAVA_OPT中检查(或添加)您的证书路径,以便在server1上构建。 此错误仅限于它无法在定义的路径中找到证书。检查路径或权限。 或者您可以通过HARD设置证书路径:)设置为运行您的应用程序服务器:
app.controller('HomeController', ['ProfileService', function(ProfileService) {
var self = this;
ProfileService.getProfile().then(function(result) {
self.name = result.name;
self.showAlert = result.showAlert;
});
}]);
或者在Java中
app.controller('ProfileController', ['ProfileService', function(ProfileService) {
var self = this;
ProfileService.getProfile().then(function(result) {
self.profile = result;
self.profile.showAlert = false;
});
}]);