diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ComponentAttributeRepository.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ComponentAttributeRepository.java index 67245188..bfa10117 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ComponentAttributeRepository.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/manager/ComponentAttributeRepository.java @@ -17,8 +17,16 @@ public interface ComponentAttributeRepository extends JpaRepository findByProvisionSessionId(UUID provisionSessionId); + + /** + * Query to look up Attribute Results based on the component id and the session id. + * @param componentId the unique id for the component identifier + * @param provisionSessionId unique id generated to link supply chain summary + * @return a list of attribute results + */ + List findByComponentIdAndProvisionSessionId(UUID componentId, UUID provisionSessionId); } diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/service/SupplyChainValidationService.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/service/SupplyChainValidationService.java index eebf99de..d9c66706 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/service/SupplyChainValidationService.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/service/SupplyChainValidationService.java @@ -245,6 +245,11 @@ public class SupplyChainValidationService { SupplyChainValidation.ValidationType.PLATFORM_CREDENTIAL, platformScv.getValidationResult(), aes, platformScv.getMessage())); } + + updateComponentStatus(componentResultRepository + .findByCertificateSerialNumberAndBoardSerialNumber( + baseCredential.getSerialNumber().toString(), + baseCredential.getPlatformSerial())); } if (!attrErrorMessage.isEmpty()) { //combine platform and platform attributes @@ -397,10 +402,16 @@ public class SupplyChainValidationService { * @param componentResults list of associated component results */ private void updateComponentStatus(final List componentResults) { - List componentAttributeResults; + List componentAttributeResults = componentAttributeRepository + .findByProvisionSessionId(provisionSessionId); + List componentIdList = new ArrayList<>(); + + for (ComponentAttributeResult componentAttributeResult : componentAttributeResults) { + componentIdList.add(componentAttributeResult.getComponentId()); + } + for (ComponentResult componentResult : componentResults) { - componentAttributeResults = componentAttributeRepository.findByComponentId(componentResult.getId()); - componentResult.setFailedValidation(!componentAttributeResults.isEmpty()); + componentResult.setFailedValidation(componentIdList.contains(componentResult.getId())); componentResultRepository.save(componentResult); } }