diff --git a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java index c5f97fb6..a606d1d0 100644 --- a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java +++ b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/CertificatePageController.java @@ -375,7 +375,8 @@ public class CertificatePageController extends PageController { try { UUID uuid = UUID.fromString(id); - Certificate certificate = certificateRepository.getReferenceById(uuid); + Certificate certificate = getCertificateById(certificateType, uuid); + if (certificate == null) { // Use the term "record" here to avoid user confusion b/t cert and cred String notFoundMessage = "Unable to locate record with ID: " + uuid; @@ -748,6 +749,29 @@ public class CertificatePageController extends PageController { return associatedCertificates; } + private Certificate getCertificateById(final String certificateType, final UUID uuid) { + switch (certificateType) { + case PLATFORMCREDENTIAL: + if (platformCertificateRepository.existsById(uuid)) { + return platformCertificateRepository.getReferenceById(uuid); + } + case ENDORSEMENTCREDENTIAL: + if (endorsementCredentialRepository.existsById(uuid)) { + return endorsementCredentialRepository.getReferenceById(uuid); + } + case ISSUEDCERTIFICATES: + if (issuedCertificateRepository.existsById(uuid)) { + return issuedCertificateRepository.getReferenceById(uuid); + } + case TRUSTCHAIN: + if (caCredentialRepository.existsById(uuid)) { + return caCredentialRepository.getReferenceById(uuid); + } + default: + return null; + } + } + /** * Parses an uploaded file into a certificate and populates the given model * with error messages if parsing fails. @@ -821,7 +845,7 @@ public class CertificatePageController extends PageController { log.error(failMessage, dEx); messages.addError(failMessage + dEx.getMessage()); return null; - } catch (IllegalArgumentException | IllegalStateException iaEx) { + } catch (IllegalArgumentException iaEx) { final String failMessage = String.format( "Certificate format not recognized(%s): ", fileName); log.error(failMessage, iaEx); diff --git a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestPageController.java b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestPageController.java index a4e8d5a9..b934004a 100644 --- a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestPageController.java +++ b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/controllers/ReferenceManifestPageController.java @@ -350,20 +350,12 @@ public class ReferenceManifestPageController extends PageController { SupportReferenceManifest support; for (ReferenceDigestValue rdv : referenceDigestValues) { // We are updating the base rim ID field if necessary and - if (rdv.getBaseRimId() == null) { + if (rdv.getBaseRimId() == null && referenceManifestRepository.existsById(rdv.getSupportRimId())) { support = (SupportReferenceManifest) referenceManifestRepository.getReferenceById(rdv.getSupportRimId()); - if (support != null) { - rdv.setBaseRimId(support.getAssociatedRim()); - try { - referenceDigestValueRepository.save(rdv); - } catch (DBManagerException e) { - log.error("Failed to update TPM Event with Base RIM ID"); - } + rdv.setBaseRimId(support.getAssociatedRim()); + try { + referenceDigestValueRepository.save(rdv); + } catch (DBManagerException dbMEx) { + log.error("Failed to update TPM Event with Base RIM ID"); } } } diff --git a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/utils/CertificateStringMapBuilder.java b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/utils/CertificateStringMapBuilder.java index 54afaab8..e83f986c 100644 --- a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/utils/CertificateStringMapBuilder.java +++ b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/utils/CertificateStringMapBuilder.java @@ -150,7 +150,7 @@ public final class CertificateStringMapBuilder { final Certificate certificate, final CertificateRepository certificateRepository, final CACredentialRepository caCredentialRepository) { - List issuerCertificates = new ArrayList<>(); + List issuerCertificates = new ArrayList<>(); CertificateAuthorityCredential skiCA = null; String issuerResult; @@ -167,12 +167,10 @@ public final class CertificateStringMapBuilder { if (certificate.getIssuerSorted() == null || certificate.getIssuerSorted().isEmpty()) { //Get certificates by subject - issuerCertificates = certificateRepository.findBySubject(certificate.getIssuer(), - "CertificateAuthorityCredential"); + issuerCertificates = caCredentialRepository.findBySubject(certificate.getIssuer()); } else { //Get certificates by subject organization - issuerCertificates = certificateRepository.findBySubjectSorted(certificate.getIssuerSorted(), - "CertificateAuthorityCredential"); + issuerCertificates = caCredentialRepository.findBySubjectSorted(certificate.getIssuerSorted()); } } else { issuerCertificates.add(skiCA); @@ -209,6 +207,9 @@ public final class CertificateStringMapBuilder { public static HashMap getCertificateAuthorityInformation(final UUID uuid, final CertificateRepository certificateRepository, final CACredentialRepository caCertificateRepository) { + if (!caCertificateRepository.existsById(uuid)) { + return new HashMap<>(); + } CertificateAuthorityCredential certificate = caCertificateRepository.getReferenceById(uuid); String notFoundMessage = "Unable to find Certificate Authority "