对定位服务器的远程身份验证

时间:2018-07-16 18:47:29

标签: security authentication containers remote-access

我想将Java应用程序与远程部署的anchore-engine集成在一起,以静态扫描容器图像。我已使用指定的here API客户端作为指南。我仍然遇到以下身份验证错误:

Exception in thread "main" io.swagger.client.ApiException: Unauthorized at io.swagger.client.ApiClient.handleResponse(ApiClient.java:922) at io.swagger.client.ApiClient.execute(ApiClient.java:838) at io.swagger.client.api.VulnerabilitiesApi.getImageVulnerabilitiesByTypeWithHttpInfo (VulnerabilitiesApi.java:142) at o.swagger.client.api.VulnerabilitiesApi.getImageVulnerabilitiesByType(VulnerabilitiesApi.java:127) at io.cavasTest.CavasTest.main(CavasTest.java:28)

我尝试通过下面的代码进行身份验证-

authentications = new HashMap<String, Authentication>();
authentications.put("basicAuth", new HttpBasicAuth());
HttpBasicAuth httpBasicAuth = new HttpBasicAuth();
httpBasicAuth.setUsername("xxxxx");
httpBasicAuth.setPassword("xxxxx"); 

有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

我已在github票证中评论:https://github.com/anchore/anchore-engine/issues/72

我对swagger生成的Java代码不是很熟悉,但是基于此摘要,您正在将用户和密码添加到实际上不在HashMap中的HttpBasicAuth对象中。我认为这应该可行:

authentications = new HashMap<String, Authentication>();
HttpBasicAuth httpBasicAuth = new HttpBasicAuth();
httpBasicAuth.setUsername("xxxxx");
httpBasicAuth.setPassword("xxxxx");
authentications.put("basicAuth", httpBasicAuth);