security - 对锚点服务器的远程身份验证
问题描述
我想将我的 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");
有什么我想念的吗?
解决方案
我在 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);
推荐阅读
- ruby - 如何从 XML 字符串或文件中删除表情符号,无论它们是否已编码
- google-cloud-platform - 如何使用 Google Cloud Service Account 在两个服务之间进行身份验证
- c++ - MongoDB 使用数组中的 OR 条件构建查询
- python - 有效地添加到最短存储桶
- ibm-watson - 在 Watson Visual Recognition 上训练模型
- python - 与重复计时器一起使用时,Python OpenCV imshow 冻结
- python - 从 LinkedIn 网络抓取公司详细信息 --- 无法在内部获取正文标签
- postgresql - 如何使用 docker-compose 设置 postgres 的服务器名称?
- java - 如何在 Javascript 弹出窗口中输入凭据?我们无法通过链接中的凭据
- android - 在 Firebase 数据库中读取孩子