401在访问openshift 3.11 API时未经授权

时间:2019-06-27 04:48:28

标签: spring-boot openshift resttemplate

我正在创建一个spring resttemplate客户端,该客户端调用OpenShift 3.11 api端点。身份验证成功后,通过传递身份验证标头对OpenShift api进行后续调用时,我收到401未经授权错误

软件版本 Spring Boot 2.1.5 OpenShift 3.11

1>首先,我的spring rest模板客户端对openshift api服务执行身份验证,这将返回承载令牌。 2>随后,spring rest模板客户端通过传递所需的标头信息(包括带有承载令牌的授权标头)和json主体有效负载,对调用所需端点的openshift api服务进行发布操作。但是发布操作失败,显示401 Unauthorized。 (出于调试目的,uri端点和令牌已打印在控制台上。)

然后我尝试通过使用相同的令牌(如在控制台中打印)调用相同的openshift api端点(如在控制台中打印)来进行CURL,

在Postman rest client的帮助下,我再次尝试使用相同的令牌(如在控制台中打印)调用相同的openshift api(如在控制台中打印),此操作也成功了。

下面是必需的spring rest客户代码。

HttpHeaders headers = new HttpHeaders();
//headers.add("User-Agent", "Spring all");
headers.setBearerAuth(token);
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));

String uri=openshiftAPIServerURL.concat(openshiftProjectCreationUri);
HttpEntity<String> entity = new HttpEntity<String>(payload,requestHeaders);
response = projectRestTemplate.exchange(uri,HttpMethod.POST,entity,String.class);

任何帮助将不胜感激

预先感谢

0 个答案:

没有答案