/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.intel.mtwilson.as.rest.v2.repository; import com.intel.dcsg.cpg.io.UUID; import com.intel.dcsg.cpg.x509.X509Util; import com.intel.mtwilson.My; import com.intel.mtwilson.as.controller.TblHostsJpaController; import com.intel.mtwilson.as.data.TblHosts; import com.intel.mtwilson.as.rest.v2.model.HostAikCertificate; import com.intel.mtwilson.as.rest.v2.model.HostAikCertificateCollection; import com.intel.mtwilson.as.rest.v2.model.HostAikCertificateFilterCriteria; import com.intel.mtwilson.as.rest.v2.model.HostAikCertificateLocator; import com.intel.mtwilson.jaxrs2.server.resource.DocumentRepository; import com.intel.mtwilson.repository.RepositoryCreateException; import com.intel.mtwilson.repository.RepositoryRetrieveException; import com.intel.mtwilson.repository.RepositorySearchException; import org.apache.shiro.authz.annotation.RequiresPermissions; /** * * @author ssbangal */ public class HostAikCertificateRepository implements DocumentRepository<HostAikCertificate, HostAikCertificateCollection, HostAikCertificateFilterCriteria, HostAikCertificateLocator> { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(HostAikCertificateRepository.class); @Override @RequiresPermissions("host_aik_certificates:search") public HostAikCertificateCollection search(HostAikCertificateFilterCriteria criteria) { log.debug("AikCertificate:Search - Got request to search for the Host Aik Certificates."); HostAikCertificateCollection objCollection = new HostAikCertificateCollection(); try { TblHostsJpaController jpaController = My.jpa().mwHosts(); if (criteria.hostUuid != null) { TblHosts obj = jpaController.findHostByUuid(criteria.hostUuid.toString()); if (obj != null) { objCollection.getAikCertificates().add(convert(obj)); } } } catch (Exception ex) { log.error("AikCertificate:Search - Error during search for hosts.", ex); throw new RepositorySearchException(ex, criteria); } log.debug("AikCertificate:Search - Returning back {} of results.", objCollection.getAikCertificates().size()); return objCollection; } @Override @RequiresPermissions("host_aik_certificates:retrieve") public HostAikCertificate retrieve(HostAikCertificateLocator locator) { if (locator == null || locator.hostUuid == null) { return null; } log.debug("AikCertificate:Retrieve - Got request to retrieve Aik certificate for host with id {}.", locator.hostUuid); String id = locator.hostUuid.toString(); try { TblHostsJpaController jpaController = My.jpa().mwHosts(); TblHosts obj = jpaController.findHostByUuid(id); if (obj != null) { HostAikCertificate hostAik = convert(obj); return hostAik; } } catch (Exception ex) { log.error("AikCertificate:Retrieve - Error during search for hosts.", ex); throw new RepositoryRetrieveException(ex, locator); } return null; } @Override @RequiresPermissions("host_aik_certificates:store") public void store(HostAikCertificate item) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override @RequiresPermissions("host_aik_certificates:create") public void create(HostAikCertificate item) { log.debug("AikCertificate:Create - Got request to create a new Aik certificate."); HostAikCertificateLocator locator = new HostAikCertificateLocator(); locator.hostUuid = UUID.valueOf(item.getHostUuid()); try { TblHostsJpaController jpaController = My.jpa().mwHosts(); TblHosts obj = jpaController.findHostByUuid(item.getHostUuid()); if (obj != null) { obj.setAIKCertificate(X509Util.encodePemCertificate(item.getX509Certificate())); // Sha1Digest aikSha1 = Sha1Digest.valueOf(item.getCertificate()); jpaController.edit(obj); } } catch (Exception ex) { log.error("AikCertificate:Create - Error during aik update for the host.", ex); throw new RepositoryCreateException(ex, locator); } } @Override @RequiresPermissions("host_aik_certificates:delete") public void delete(HostAikCertificateLocator locator) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override @RequiresPermissions("host_aik_certificates:delete,search") public void delete(HostAikCertificateFilterCriteria criteria) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } private HostAikCertificate convert(TblHosts obj) { HostAikCertificate convObj = new HostAikCertificate(); convObj.setId(UUID.valueOf(obj.getUuid_hex())); convObj.setCertificate(obj.getAIKCertificate().getBytes()); convObj.setAikSha1(obj.getAikSha1()); return convObj; } }