首页 > 解决方案 > 对锚点服务器的远程身份验证

问题描述

我想将我的 java 应用程序与远程部署的 anchore 引擎集成,以对容器图像进行静态扫描。我已使用 此处指定的 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"); 

有什么我想念的吗?

标签: securityauthenticationcontainersremote-access

解决方案


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

推荐阅读