当前位置: 首页 > 知识库问答 >
问题:

使用Jwt令牌(java)调用REST服务时出现有效的证书路径错误

姚鹤龄
2023-03-14

我有一个rest webservice,它被java程序调用。rest服务提供商给了我们一个jwt令牌。当我在chrome(swagger)或postman客户端中测试它时,它工作正常。当我尝试从java(webClient)调用它时。程序抛出错误:

 javax.net.ssl.SSLHandshakeException: SSLHandshakeException invoking <rest path>: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.

这就是它的名字:

     Response response = WebClient.create("url")
    .accept(MediaType.TEXT_PLAIN).header(HttpHeaders.AUTHORIZATION, "Bearer "+ <jwt token>).header(HttpHeaders.CONTENT_TYPE, "application/json").get();

有人面对过这个吗?

共有1个答案

徐英锐
2023-03-14

Java无法验证证书的真实性。使用自签名证书时可能会发生这种情况,但不仅仅如此。从Chrome访问时,您必须接受不受信任的证书吗?

如果证书很好,并且您确实信任它,那么您可以看看本文中的示例,了解如何将证书添加到信任存储中。

 类似资料:
  • 我在tomcat war中调用一个rest web服务。我使用以下内容进行web服务调用:

  • 问题内容: 在使用Java EE 6的Web应用程序上,我想将某些功能作为Json Rest Service公开。我想使用身份验证令牌进行登录,用户将发送其用户名,密码,服务器将发送回令牌,该令牌将用于授权用户在给定时间内的进一步请求。 到目前为止,有几个问题困扰着我; 当服务器创建令牌并将其发送给客户端时,服务器是否应该使用像哈希表这样的东西作为用户ID令牌对将其保存在DB或Bean中? 我可以

  • 是否可以从应用程序中创建JWT令牌,并使用GCP服务帐户在应用程序中验证它?我如何在Python中做到这一点? 这两个应用程序都部署在GCP中。应用程序可以部署在GCF、Cloud Run、AppEngine、GKE甚至GCE中。 我花了一些时间阅读Google Cloud文档,但我没有找到如何处理服务间身份验证的“通用”答案。(很可能是因为它们对每个GCP产品都不相同) 那么,考虑到我们抛开了谷

  • 我已经创建了一个简单的spring boot应用程序,我已经使用KeyCloak对其进行了身份验证。当我调用服务(http://localhost:8080/table1data)时,它会将我重定向到keycloak登录页面,在该页面中插入我的领域用户名和密码,然后返回数据。现在到现在一切都很好。 我想要另一个场景。如果我的用户已经拥有相应领域的有效令牌,并且他希望使用正确的令牌访问相同的URL,

  • 问题内容: 该问题在某种程度上与以下链接的问题有关。但是,我需要在某些方面和一些其他信息上多一点清晰度。 我需要使用令牌为REST Web服务实现安全性 该Web服务旨在与Java客户端一起使用。因此,表单身份验证和凭据弹出窗口没有用。 我是REST安全和加密的新手 这是我到目前为止所了解的: 对于第一个请求: 用户建立https连接(或容器使用301确保https) 用户POST输入用户名和密码