diff --git a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java index ab4683d1..7256a6b8 100644 --- a/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java +++ b/HIRS_AttestationCA/src/main/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClass.java @@ -155,7 +155,7 @@ ComponentClass { * @param component string representation of the component ID * @return the int representation of the component */ - private static String verifyComponentValue(final String component) { + private String verifyComponentValue(final String component) { String componentValue = ERROR; if (component != null) { @@ -223,7 +223,7 @@ ComponentClass { } else if (componentMask.equals(UNKNOWN)) { this.componentStr = UNKNOWN_STRING; } else { - getComponent(componentTypes); + setComponentString(componentTypes); } } } @@ -247,12 +247,11 @@ ComponentClass { } /** - * Getter for the component associated with the component JSON Object mapped - * in the JSON file. + * Sets the component string value based on the provided JSON object's components. * - * @param components JSON Object for the categories components + * @param components JSON Object components */ - private void getComponent(final JsonObject components) { + private void setComponentString(final JsonObject components) { String typeID; if (components != null) { @@ -264,5 +263,10 @@ ComponentClass { } } } + + // if the component string is still null after doing a lookup + if (componentStr == null) { + componentStr = UNKNOWN_STRING; + } } } diff --git a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClassTest.java b/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClassTest.java index 8dc54358..b148ac38 100644 --- a/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClassTest.java +++ b/HIRS_AttestationCA/src/test/java/hirs/attestationca/persist/entity/userdefined/certificate/attributes/ComponentClassTest.java @@ -6,7 +6,7 @@ import java.net.URISyntaxException; import java.nio.file.Paths; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * Tests for the ComponentClassTest class. @@ -28,8 +28,8 @@ public class ComponentClassTest { componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "Unknown"); - assertEquals(resultCategory, "None"); + assertEquals("Unknown", resultComponent); + assertEquals("None", resultCategory); } /** @@ -44,8 +44,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "Unknown"); - assertEquals(resultCategory, "None"); + assertEquals("Unknown", resultComponent); + assertEquals("None", resultCategory); } /** @@ -60,8 +60,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "Unknown"); - assertEquals(resultCategory, "None"); + assertEquals("Unknown", resultComponent); + assertEquals("None", resultCategory); } /** @@ -76,8 +76,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "Unknown"); - assertEquals(resultCategory, "None"); + assertEquals("Unknown", resultComponent); + assertEquals("None", resultCategory); } /** @@ -92,8 +92,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "Unknown"); - assertEquals(resultCategory, "None"); + assertEquals("Unknown", resultComponent); + assertEquals("None", resultCategory); } /** @@ -108,8 +108,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "SAS Bridgeboard"); - assertEquals(resultCategory, "Modules"); + assertEquals("SAS Bridgeboard", resultComponent); + assertEquals("Modules", resultCategory); } /** @@ -140,8 +140,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "SAS Bridgeboard"); - assertEquals(resultCategory, "Modules"); + assertEquals("SAS Bridgeboard", resultComponent); + assertEquals("Modules", resultCategory); } /** @@ -236,8 +236,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "SAS Bridgeboard"); - assertEquals(resultCategory, "Modules"); + assertEquals("SAS Bridgeboard", resultComponent); + assertEquals("Modules", resultCategory); } /** @@ -252,8 +252,8 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "SAS Bridgeboard"); - assertEquals(resultCategory, "Modules"); + assertEquals("SAS Bridgeboard", resultComponent); + assertEquals("Modules", resultCategory); } /** @@ -268,8 +268,9 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertNull(resultComponent); - assertEquals(resultCategory, "Modules"); + assertNotNull(resultComponent); + assertEquals("Unknown", resultComponent); + assertEquals("Modules", resultCategory); } /** @@ -284,8 +285,9 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertNull(resultComponent); - assertEquals(resultCategory, "Modules"); + assertNotNull(resultComponent); + assertEquals("Unknown", resultComponent); + assertEquals("Modules", resultCategory); } /** @@ -300,7 +302,7 @@ public class ComponentClassTest { .getResource(JSON_FILE).toURI()), componentIdentifier); String resultCategory = instance.getCategoryStr(); String resultComponent = instance.getComponentStr(); - assertEquals(resultComponent, "Unknown"); - assertEquals(resultCategory, "None"); + assertEquals("Unknown", resultComponent); + assertEquals("None", resultCategory); } } diff --git a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/Page.java b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/Page.java index 49fbf333..182c76d4 100644 --- a/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/Page.java +++ b/HIRS_AttestationCAPortal/src/main/java/hirs/attestationca/portal/page/Page.java @@ -1,10 +1,12 @@ package hirs.attestationca.portal.page; import hirs.utils.VersionHelper; +import lombok.Getter; /** * Contains attributes required to display a portal page and its menu link. */ +@Getter public enum Page { /** @@ -73,14 +75,25 @@ public enum Page { HELP("Help", "ic_live_help"); private final String title; + private final String subtitle; + private final String icon; + /** + * Boolean representation of whether the page should display the navigation menu. + */ private final boolean hasMenu; + private final String menuLinkClass; + + /** + * Boolean representation of whether the page should be displayed in the navigation menu. + */ private final boolean inMenu; private final String prefixPath; + private final String viewName; /** @@ -150,80 +163,4 @@ public enum Page { final String icon) { this(title, null, icon, true, true, null, null); } - - /** - * Returns the title of the page. - * - * @return the title of the page. - */ - public String getTitle() { - return title; - } - - /** - * Returns the subtitle of the page. - * - * @return the subtitle of the page. - */ - public String getSubtitle() { - return subtitle; - } - - /** - * Returns the base filename of the icon for page. E.g. "ic_my_icon", which will be appended - * with appropriate size string (_24dp/_48dp) and file extension (.png) when used. - * - * @return the base filename of the icon for page. - */ - public String getIcon() { - return icon; - } - - /** - * Returns true if the page should be displayed in the navigation menu. - * - * @return true if the page should be displayed in the navigation menu. - */ - public boolean getInMenu() { - return inMenu; - } - - /** - * Returns the css class to add to the menu link to display it appropriately. E.g. "first" if - * the link is the first in a group to separate it visually from the previous group. - * - * @return he class to add to the menu link to display it appropriately. - */ - public String getMenuLinkClass() { - return menuLinkClass; - } - - /** - * Returns true if the page should display the navigation menu. - * - * @return true if the page should display the navigation menu. - */ - public boolean getHasMenu() { - return hasMenu; - } - - /** - * Return the page's view name. - * - * @return the page's view name - */ - public String getViewName() { - return viewName; - } - - /** - * Return the page's view name. - * - * @return the page's view name - */ - public String getPrefixPath() { - return prefixPath; - } - } - 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 9db75259..4639e411 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 @@ -165,21 +165,15 @@ public class CertificatePageController extends PageController { * @return the certificate class type */ private static Class getCertificateClass(final String certificateType) { - switch (certificateType) { - case PLATFORMCREDENTIAL: - return PlatformCredential.class; - case ENDORSEMENTCREDENTIAL: - return EndorsementCredential.class; - case ISSUEDCERTIFICATES: - return IssuedAttestationCertificate.class; - case IDEVIDCERTIFICATE: - return IDevIDCertificate.class; - case TRUSTCHAIN: - return CertificateAuthorityCredential.class; - default: - throw new IllegalArgumentException( - String.format("Unknown certificate type: %s", certificateType)); - } + return switch (certificateType) { + case PLATFORMCREDENTIAL -> PlatformCredential.class; + case ENDORSEMENTCREDENTIAL -> EndorsementCredential.class; + case ISSUEDCERTIFICATES -> IssuedAttestationCertificate.class; + case IDEVIDCERTIFICATE -> IDevIDCertificate.class; + case TRUSTCHAIN -> CertificateAuthorityCredential.class; + default -> throw new IllegalArgumentException( + String.format("Unknown certificate type: %s", certificateType)); + }; } /** @@ -288,107 +282,115 @@ public class CertificatePageController extends PageController { // special parsing for platform credential // Add the EndorsementCredential for each PlatformCredential based on the // serial number. (pc.HolderSerialNumber = ec.SerialNumber) - if (certificateType.equals(PLATFORMCREDENTIAL)) { - FilteredRecordsList records = new FilteredRecordsList<>(); - org.springframework.data.domain.Page pagedResult = - this.platformCertificateRepository.findByArchiveFlag(false, paging); + switch (certificateType) { + case PLATFORMCREDENTIAL -> { + FilteredRecordsList records = new FilteredRecordsList<>(); + org.springframework.data.domain.Page pagedResult = + this.platformCertificateRepository.findByArchiveFlag(false, paging); - if (pagedResult.hasContent()) { - records.addAll(pagedResult.getContent()); - records.setRecordsTotal(pagedResult.getContent().size()); - } else { - records.setRecordsTotal(input.getLength()); - } - - records.setRecordsFiltered(platformCertificateRepository.findByArchiveFlag(false).size()); - EndorsementCredential associatedEC; - - if (!records.isEmpty()) { - // loop all the platform certificates - for (int i = 0; i < records.size(); i++) { - PlatformCredential pc = records.get(i); - // find the EC using the PC's "holder serial number" - associatedEC = this.endorsementCredentialRepository - .findBySerialNumber(pc.getHolderSerialNumber()); - - if (associatedEC != null) { - log.debug("EC ID for holder s/n " + pc - .getHolderSerialNumber() + " = " + associatedEC.getId()); - } - - pc.setEndorsementCredential(associatedEC); + if (pagedResult.hasContent()) { + records.addAll(pagedResult.getContent()); + records.setRecordsTotal(pagedResult.getContent().size()); + } else { + records.setRecordsTotal(input.getLength()); } + + records.setRecordsFiltered(platformCertificateRepository.findByArchiveFlag(false).size()); + EndorsementCredential associatedEC; + + if (!records.isEmpty()) { + // loop all the platform certificates + for (PlatformCredential pc : records) { + // find the EC using the PC's "holder serial number" + associatedEC = this.endorsementCredentialRepository + .findBySerialNumber(pc.getHolderSerialNumber()); + + if (associatedEC != null) { + log.debug("EC ID for holder s/n {} = {}", pc + .getHolderSerialNumber(), associatedEC.getId()); + } + + pc.setEndorsementCredential(associatedEC); + } + } + + log.debug("Returning the size of the list of platform credentials: {}", records.size()); + return new DataTableResponse<>(records, input); } + case ENDORSEMENTCREDENTIAL -> { + FilteredRecordsList records = new FilteredRecordsList<>(); + org.springframework.data.domain.Page pagedResult = + this.endorsementCredentialRepository.findByArchiveFlag(false, paging); - log.debug("Returning list of size: " + records.size()); - return new DataTableResponse<>(records, input); - } else if (certificateType.equals(ENDORSEMENTCREDENTIAL)) { - FilteredRecordsList records = new FilteredRecordsList<>(); - org.springframework.data.domain.Page pagedResult = - this.endorsementCredentialRepository.findByArchiveFlag(false, paging); + if (pagedResult.hasContent()) { + records.addAll(pagedResult.getContent()); + records.setRecordsTotal(pagedResult.getContent().size()); + } else { + records.setRecordsTotal(input.getLength()); + } - if (pagedResult.hasContent()) { - records.addAll(pagedResult.getContent()); - records.setRecordsTotal(pagedResult.getContent().size()); - } else { - records.setRecordsTotal(input.getLength()); + records.setRecordsFiltered(endorsementCredentialRepository.findByArchiveFlag(false).size()); + + log.debug("Returning the size of the list of endorsement credentials: {}", records.size()); + return new DataTableResponse<>(records, input); } + case TRUSTCHAIN -> { + FilteredRecordsList records = new FilteredRecordsList<>(); + org.springframework.data.domain.Page pagedResult = + this.caCredentialRepository.findByArchiveFlag(false, paging); - records.setRecordsFiltered(endorsementCredentialRepository.findByArchiveFlag(false).size()); + if (pagedResult.hasContent()) { + records.addAll(pagedResult.getContent()); + records.setRecordsTotal(pagedResult.getContent().size()); + } else { + records.setRecordsTotal(input.getLength()); + } - log.debug("Returning list of size: " + records.size()); - return new DataTableResponse<>(records, input); - } else if (certificateType.equals(TRUSTCHAIN)) { - FilteredRecordsList records = new FilteredRecordsList<>(); - org.springframework.data.domain.Page pagedResult = - this.caCredentialRepository.findByArchiveFlag(false, paging); + records.setRecordsFiltered(caCredentialRepository.findByArchiveFlag(false).size()); - if (pagedResult.hasContent()) { - records.addAll(pagedResult.getContent()); - records.setRecordsTotal(pagedResult.getContent().size()); - } else { - records.setRecordsTotal(input.getLength()); + log.debug("Returning the size of the list of certificate trust chains: {}", records.size()); + return new DataTableResponse<>(records, input); } + case ISSUEDCERTIFICATES -> { + FilteredRecordsList records = new FilteredRecordsList<>(); + org.springframework.data.domain.Page pagedResult = + this.issuedCertificateRepository.findByArchiveFlag(false, paging); - records.setRecordsFiltered(caCredentialRepository.findByArchiveFlag(false).size()); + if (pagedResult.hasContent()) { + records.addAll(pagedResult.getContent()); + records.setRecordsTotal(pagedResult.getContent().size()); + } else { + records.setRecordsTotal(input.getLength()); + } - log.debug("Returning list of size: " + records.size()); - return new DataTableResponse<>(records, input); - } else if (certificateType.equals(ISSUEDCERTIFICATES)) { - FilteredRecordsList records = new FilteredRecordsList<>(); - org.springframework.data.domain.Page pagedResult = - this.issuedCertificateRepository.findByArchiveFlag(false, paging); + records.setRecordsFiltered(issuedCertificateRepository.findByArchiveFlag(false).size()); - if (pagedResult.hasContent()) { - records.addAll(pagedResult.getContent()); - records.setRecordsTotal(pagedResult.getContent().size()); - } else { - records.setRecordsTotal(input.getLength()); + log.debug("Returning the size of the list of issued certificates: {}", records.size()); + return new DataTableResponse<>(records, input); } + case IDEVIDCERTIFICATE -> { + FilteredRecordsList records = new FilteredRecordsList(); + org.springframework.data.domain.Page pagedResult = + this.iDevIDCertificateRepository.findByArchiveFlag(false, paging); - records.setRecordsFiltered(issuedCertificateRepository.findByArchiveFlag(false).size()); + if (pagedResult.hasContent()) { + records.addAll(pagedResult.getContent()); + records.setRecordsTotal(pagedResult.getContent().size()); + } else { + records.setRecordsTotal(input.getLength()); + } - log.debug("Returning list of size: " + records.size()); - return new DataTableResponse<>(records, input); - } else if (certificateType.equals(IDEVIDCERTIFICATE)) { - FilteredRecordsList records = new FilteredRecordsList(); - org.springframework.data.domain.Page pagedResult = - this.iDevIDCertificateRepository.findByArchiveFlag(false, paging); + records.setRecordsFiltered(iDevIDCertificateRepository.findByArchiveFlag(false).size()); - if (pagedResult.hasContent()) { - records.addAll(pagedResult.getContent()); - records.setRecordsTotal(pagedResult.getContent().size()); - } else { - records.setRecordsTotal(input.getLength()); + log.debug("Returning the size of the list of IDEVID certificates: {}", records.size()); + return new DataTableResponse<>(records, input); + } + default -> { + log.error("Cannot provide the size of the records because the" + + "provided certificate type does not exist."); + return new DataTableResponse<>(new FilteredRecordsList<>(), input); } - - records.setRecordsFiltered(iDevIDCertificateRepository.findByArchiveFlag(false).size()); - - log.debug("Returning list of size: " + records.size()); - return new DataTableResponse<>(records, input); } - - return new DataTableResponse<>(new FilteredRecordsList<>(), input); } /** @@ -443,7 +445,7 @@ public class CertificatePageController extends PageController { @PathVariable("certificateType") final String certificateType, @RequestParam final String id, final RedirectAttributes attr) throws URISyntaxException { - log.info("Handling request to delete " + id); + log.info("Handling request to delete {}", id); Map model = new HashMap<>(); PageMessages messages = new PageMessages(); @@ -506,7 +508,7 @@ public class CertificatePageController extends PageController { * @param id the UUID of the cert to download * @param response the response object (needed to update the header with the * file name) - * @throws java.io.IOException when writing to response output stream + * @throws IOException when writing to response output stream */ @RequestMapping(value = "/{certificateType}/download", method = RequestMethod.GET) public void download( @@ -514,7 +516,7 @@ public class CertificatePageController extends PageController { @RequestParam final String id, final HttpServletResponse response) throws IOException { - log.info("Handling request to download " + id); + log.info("Handling request to download {}", id); try { UUID uuid = UUID.fromString(id); @@ -552,7 +554,7 @@ public class CertificatePageController extends PageController { * * @param response the response object (needed to update the header with the * file name) - * @throws java.io.IOException when writing to response output stream + * @throws IOException when writing to response output stream */ @ResponseBody @RequestMapping(value = "/trust-chain/download-aca-cert", method = RequestMethod.GET) @@ -573,7 +575,7 @@ public class CertificatePageController extends PageController { * * @param response the response object (needed to update the header with the * file name) - * @throws java.io.IOException when writing to response output stream + * @throws IOException when writing to response output stream */ @RequestMapping(value = "/trust-chain/bulk", method = RequestMethod.GET) public void caBulkDownload(final HttpServletResponse response) @@ -605,7 +607,7 @@ public class CertificatePageController extends PageController { * * @param response the response object (needed to update the header with the * file name) - * @throws java.io.IOException when writing to response output stream + * @throws IOException when writing to response output stream */ @RequestMapping(value = "/platform-credentials/bulk", method = RequestMethod.GET) public void pcBulkDownload(final HttpServletResponse response) @@ -637,7 +639,7 @@ public class CertificatePageController extends PageController { * * @param response the response object (needed to update the header with the * file name) - * @throws java.io.IOException when writing to response output stream + * @throws IOException when writing to response output stream */ @RequestMapping(value = "/issued-certificates/bulk", method = RequestMethod.GET) public void icBulkDownload(final HttpServletResponse response) @@ -670,7 +672,7 @@ public class CertificatePageController extends PageController { * * @param response the response object (needed to update the header with the * file name) - * @throws java.io.IOException when writing to response output stream + * @throws IOException when writing to response output stream */ @RequestMapping(value = "/endorsement-key-credentials/bulk", method = RequestMethod.GET) public void ekBulkDownload(final HttpServletResponse response) @@ -696,6 +698,15 @@ public class CertificatePageController extends PageController { } } + /** + * Helper method that packages a collection of certificates into a zip file. + * + * @param zipOut zip outputs stream + * @param certificates collection of certificates + * @param singleFileName zip file name + * @return zip outputs stream + * @throws IOException if there are any issues packaging or downloading the zip file + */ private ZipOutputStream bulkDownload(final ZipOutputStream zipOut, final List certificates, final String singleFileName) throws IOException { @@ -727,9 +738,8 @@ public class CertificatePageController extends PageController { * table, false otherwise. */ private boolean hasDeviceTableToJoin(final String certificateType) { - boolean hasDevice = !certificateType.equals(TRUSTCHAIN); // Trust_Chain Credential do not contain the device table to join. - return hasDevice; + return !certificateType.equals(TRUSTCHAIN); } /** @@ -744,26 +754,21 @@ public class CertificatePageController extends PageController { final String certificateType, final int certificateHash) { - switch (certificateType) { - case PLATFORMCREDENTIAL: - return this.certificateRepository - .findByCertificateHash(certificateHash, - "PlatformCredential"); - case ENDORSEMENTCREDENTIAL: - return this.certificateRepository - .findByCertificateHash(certificateHash, - "EndorsementCredential"); - case TRUSTCHAIN: - return this.certificateRepository - .findByCertificateHash(certificateHash, - "CertificateAuthorityCredential"); - case IDEVIDCERTIFICATE: - return this.certificateRepository - .findByCertificateHash(certificateHash, - "IDevIDCertificate"); - default: - return null; - } + return switch (certificateType) { + case PLATFORMCREDENTIAL -> this.certificateRepository + .findByCertificateHash(certificateHash, + "PlatformCredential"); + case ENDORSEMENTCREDENTIAL -> this.certificateRepository + .findByCertificateHash(certificateHash, + "EndorsementCredential"); + case TRUSTCHAIN -> this.certificateRepository + .findByCertificateHash(certificateHash, + "CertificateAuthorityCredential"); + case IDEVIDCERTIFICATE -> this.certificateRepository + .findByCertificateHash(certificateHash, + "IDevIDCertificate"); + default -> null; + }; } /** @@ -779,11 +784,9 @@ public class CertificatePageController extends PageController { List associatedCertificates = new LinkedList<>(); if (serialNumber != null) { - switch (certificateType) { - case PLATFORMCREDENTIAL: - associatedCertificates.addAll(this.certificateRepository - .byBoardSerialNumber(serialNumber)); - default: + if (certificateType.equals(PLATFORMCREDENTIAL)) { + associatedCertificates.addAll(this.certificateRepository + .byBoardSerialNumber(serialNumber)); } } @@ -1010,6 +1013,12 @@ public class CertificatePageController extends PageController { log.error(failMessage); } + /** + * Helper method that utilizes the components of the provided platform certificate to generate + * a collection of component results and subsequently stores these results in the database. + * + * @param certificate certificate + */ private void handlePlatformComponents(final Certificate certificate) { PlatformCredential platformCredential; @@ -1021,8 +1030,10 @@ public class CertificatePageController extends PageController { platformCredential.getPlatformSerial()); if (componentResults.isEmpty()) { ComponentResult componentResult; - for (ComponentIdentifier componentIdentifier : platformCredential - .getComponentIdentifiers()) { + + List componentIdentifiers = platformCredential.getComponentIdentifiers(); + + for (ComponentIdentifier componentIdentifier : componentIdentifiers) { componentResult = new ComponentResult(platformCredential.getPlatformSerial(), platformCredential.getSerialNumber().toString(), platformCredential.getPlatformChainType(), @@ -1041,6 +1052,11 @@ public class CertificatePageController extends PageController { } } + /** + * Helper method that deletes component results based on the provided platform serial number. + * + * @param platformSerial platform serial number + */ private void deleteComponentResults(final String platformSerial) { List componentResults = componentResultRepository .findByBoardSerialNumber(platformSerial);