in src/main/java/com/amazon/inspector/jenkins/amazoninspectorbuildstep/models/requests/SdkRequests.java [45:87]
public String requestSbom(String sbom) {
SdkHttpClient client = ApacheHttpClient.builder().build();
String workingProfileName = awsProfileName;
AmazonWebServicesCredentials workingCredential = awsCredential;
String workingOidc = oidc;
boolean retry = true;
while (true) {
try {
InspectorScanClient scanClient = InspectorScanClient.builder()
.region(Region.of(region))
.httpClient(client)
.credentialsProvider(getCredentialProvider(workingProfileName, workingOidc, workingCredential))
.overrideConfiguration(ClientOverrideConfiguration.builder()
.putHeader("Accept-Encoding", "gzip")
.build())
.build();
JsonNodeParser jsonNodeParser = JsonNodeParser.create();
DocumentUnmarshaller unmarshaller = new DocumentUnmarshaller();
Document document = jsonNodeParser.parse(sbom).visit(unmarshaller);
ScanSbomRequest request = ScanSbomRequest.builder()
.sbom(document)
.outputFormat(OutputFormat.CYCLONE_DX_1_5)
.build();
ScanSbomResponse response = scanClient.scanSbom(request);
return response.sbom().toString();
} catch (Exception e) {
AmazonInspectorBuilder.logger.println(e);
if (!retry) {
throw e;
}
retry = false;
AmazonInspectorBuilder.logger.println("An issue occurred while authenticating, attempting to " +
"authenticate with default credential provider chain");
workingProfileName = "default";
workingCredential = null;
workingOidc = null;
}
}
}