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

Remote authentication to an anchore server

我想将我的 java 应用程序与远程部署的 anchore-engine for static scanning of container images. I have used the API Client specified here 集成作为指南。我仍然遇到如下身份验证错误:

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"); 

有什么我遗漏的吗?

我在 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);