我想将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");
有什么我想念的吗?
答案 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);