Further updates

This commit is contained in:
Cyrus 2022-08-11 16:33:28 -04:00
parent fcb6170b93
commit 831950313e
4 changed files with 54 additions and 16 deletions

View File

@ -2,8 +2,8 @@ package hirs.attestationca;
import hirs.appraiser.SupplyChainAppraiser; import hirs.appraiser.SupplyChainAppraiser;
import hirs.data.persist.policy.SupplyChainPolicy; import hirs.data.persist.policy.SupplyChainPolicy;
import hirs.persist.AppraiserManager; import hirs.persist.service.AppraiserService;
import hirs.persist.PolicyManager; import hirs.persist.service.PolicyService;
import static hirs.attestationca.AbstractAttestationCertificateAuthority.LOG; import static hirs.attestationca.AbstractAttestationCertificateAuthority.LOG;
@ -19,18 +19,18 @@ public final class AcaDbInit {
* Insert the ACA's default entries into the DB. This class is invoked after successful * Insert the ACA's default entries into the DB. This class is invoked after successful
* install of the HIRS_AttestationCA RPM. * install of the HIRS_AttestationCA RPM.
* *
* @param appraiserManager the AppraiserManager to use to persist appraisers * @param appraiserService the AppraiserService to use to persist appraisers
* @param policyManager the PolicyManager to use to persist policies * @param policyService the PolicyService to use to persist policies
*/ */
public static synchronized void insertDefaultEntries( public static synchronized void insertDefaultEntries(
final AppraiserManager appraiserManager, final AppraiserService appraiserService,
final PolicyManager policyManager) { final PolicyService policyService) {
LOG.info("Ensuring default ACA database entries are present."); LOG.info("Ensuring default ACA database entries are present.");
// If the SupplyChainAppraiser exists, do not attempt to re-save the supply chain appraiser // If the SupplyChainAppraiser exists, do not attempt to re-save the supply chain appraiser
// or SupplyChainPolicy // or SupplyChainPolicy
SupplyChainAppraiser supplyChainAppraiser = (SupplyChainAppraiser) SupplyChainAppraiser supplyChainAppraiser = (SupplyChainAppraiser)
appraiserManager.getAppraiser(SupplyChainAppraiser.NAME); appraiserService.getAppraiser(SupplyChainAppraiser.NAME);
if (supplyChainAppraiser != null) { if (supplyChainAppraiser != null) {
LOG.info("Supply chain appraiser is present; not inserting any more entries."); LOG.info("Supply chain appraiser is present; not inserting any more entries.");
LOG.info("ACA database initialization complete."); LOG.info("ACA database initialization complete.");
@ -40,15 +40,15 @@ public final class AcaDbInit {
// Create the SupplyChainAppraiser // Create the SupplyChainAppraiser
LOG.info("Saving supply chain appraiser..."); LOG.info("Saving supply chain appraiser...");
supplyChainAppraiser = (SupplyChainAppraiser) supplyChainAppraiser = (SupplyChainAppraiser)
appraiserManager.saveAppraiser(new SupplyChainAppraiser()); appraiserService.saveAppraiser(new SupplyChainAppraiser());
// Create the SupplyChainPolicy // Create the SupplyChainPolicy
LOG.info("Saving default supply chain policy..."); LOG.info("Saving default supply chain policy...");
SupplyChainPolicy supplyChainPolicy = new SupplyChainPolicy( SupplyChainPolicy supplyChainPolicy = new SupplyChainPolicy(
SupplyChainPolicy.DEFAULT_POLICY); SupplyChainPolicy.DEFAULT_POLICY);
policyManager.savePolicy(supplyChainPolicy); policyService.savePolicy(supplyChainPolicy);
policyManager.setDefaultPolicy(supplyChainAppraiser, supplyChainPolicy); policyService.setDefaultPolicy(supplyChainAppraiser, supplyChainPolicy);
policyManager.setPolicy(supplyChainAppraiser, supplyChainPolicy); policyService.setPolicy(supplyChainAppraiser, supplyChainPolicy);
LOG.info("ACA database initialization complete."); LOG.info("ACA database initialization complete.");
} }

View File

@ -1,7 +1,7 @@
package hirs.attestationca; package hirs.attestationca;
import hirs.attestationca.servicemanager.DBAppraiserManager; import hirs.attestationca.service.AppraiserServiceImpl;
import hirs.attestationca.servicemanager.DBPolicyManager; import hirs.attestationca.service.PolicyServiceImpl;
import hirs.utils.HIRSProfiles; import hirs.utils.HIRSProfiles;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@ -28,9 +28,8 @@ public class InitializationListener implements ServletContextListener {
// .getObject(); // .getObject();
EntityManager entityManager = context.getBean(EntityManagerFactory.class) EntityManager entityManager = context.getBean(EntityManagerFactory.class)
.createEntityManager(); .createEntityManager();
AcaDbInit.insertDefaultEntries( AcaDbInit.insertDefaultEntries(new AppraiserServiceImpl(entityManager),
new DBAppraiserManager(entityManager), new PolicyServiceImpl(entityManager)
new DBPolicyManager(entityManager)
); );
} }

View File

@ -176,6 +176,16 @@ public class PolicyServiceImpl extends DbServiceImpl<Policy>
return ret; return ret;
} }
@Override
public void setPolicy(final Appraiser appraiser, final Policy policy) {
}
@Override
public void setDefaultPolicy(final Appraiser appraiser, final Policy policy) {
}
@Override @Override
public FilteredRecordsList getOrderedList( public FilteredRecordsList getOrderedList(
final Class<Policy> clazz, final String columnToOrder, final Class<Policy> clazz, final String columnToOrder,

View File

@ -42,4 +42,33 @@ public interface PolicyService extends OrderedQuery<Policy> {
* @return default policy * @return default policy
*/ */
Policy getDefaultPolicy(Appraiser appraiser); Policy getDefaultPolicy(Appraiser appraiser);
/**
* Sets the <code>Policy</code> for the <code>Appraiser</code>.
*
* @param appraiser appraiser
* @param policy policy
*/
void setPolicy(Appraiser appraiser, Policy policy);
/**
* Sets the default <code>Policy</code> for an <code>Appraiser</code>. The
* default policy is used by an appraiser when a specific policy has not
* been set for a platform.
* <p>
* In this current release a specific policy for a platform cannot yet be
* set, so <code>Appraiser</code>s can only call
* {@link #getDefaultPolicy(Appraiser)} to retrieve the <code>Policy</code>
* for a platform.
* <p>
* The default policy can be unset by using null for the <code>policy</code>
* parameter. In that case future calls to get the default policy will
* return null.
*
* @param appraiser appraiser
* @param policy default policy
*/
void setDefaultPolicy(Appraiser appraiser, Policy policy);
} }