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。
我们已经在微服务架构中部署了一个 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。