Jhipster微服务Java客户端api调用错误

Jhipster microservice Java client api call error

我们已经在微服务架构中部署了一个 JHipster 应用程序。我们正在使用 OAuth 选项,我是新手。前端工作正常。但是现在我们不知道如何调试访问 restful 端点的 java 客户端。我们正在使用 nginx 来实现 ssh 并隐藏端口,以防相关。

代码是:

    String plainCreds = "myuser:mypassword";
    byte[] plainCredsBytes = plainCreds.getBytes();
    byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
    String base64Creds = new String(base64CredsBytes);

    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization", "Basic " + base64Creds);

    RestTemplate restTemplate = new RestTemplate();
    HttpEntity<String> request = new HttpEntity<String>(headers);
    String url = "https://mysite/api/my-entity/1111";
    ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
    String response = response.getBody();

响应是

org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:531)

假设您使用 uaa 和网关。

您的代码必须使用 POST 和 JSON 有效负载(参见 UserJWTControllerIntTest.testAuthorize())针对 /api/authenticate 进行身份验证以获得令牌。

获得令牌后,您必须使用带有 Bearer 前缀的 Authorization HTTP header 随每个请求发送令牌:Authorization : Bearer c123aaacr

这就是我的工作。

针对微服务架构的 UAA 版本进行身份验证时 - 终点是 https://myAddress.../myApp.../oauth/token - Content-Type 在 header = application/x-www-form-urlencoded - Body 有 grant_type = 密码、用户名和密码。

我没有考虑对 UAA 的使用 - 没有看到文档中的重要性。

感谢 Jon Ruddell。