/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.intel.mtwilson.jaxrs2.server.resource;
import com.intel.dcsg.cpg.validation.ValidationUtil;
import com.intel.mtwilson.jaxrs2.CertificateDocument;
import com.intel.mtwilson.jaxrs2.DocumentCollection;
import com.intel.mtwilson.repository.FilterCriteria;
import com.intel.mtwilson.repository.Locator;
import com.intel.mtwilson.jaxrs2.PatchLink;
import com.intel.mtwilson.jaxrs2.mediatype.CryptoMediaType;
import java.security.cert.X509Certificate;
import java.util.List;
import javax.ws.rs.BeanParam;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
*
* @author ssbangal
*/
public abstract class AbstractCertificateJsonapiResource<T extends CertificateDocument, C extends DocumentCollection<T>, F extends FilterCriteria<T>, P extends PatchLink<T>, L extends Locator<T>> extends AbstractJsonapiResource<T,C,F,P,L> {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(AbstractCertificateJsonapiResource.class);
/*
public AbstractCertificateJsonapiResource() {
super();
}
*/
@GET
@Produces({ CryptoMediaType.APPLICATION_X_PEM_FILE, MediaType.TEXT_PLAIN})
public X509Certificate[] searchX509CertificateCollection(@BeanParam F criteria) {
log.debug("searchX509CertificateCollection");
ValidationUtil.validate(criteria); // throw new MWException(e, ErrorCode.AS_INPUT_VALIDATION_ERROR, input, method.getName());
C collection = getRepository().search(criteria);
List<T> list = collection.getDocuments();
X509Certificate[] certificates = new X509Certificate[list.size()];
for(int i=0; i<certificates.length; i++) {
certificates[i] = list.get(i).getX509Certificate();
}
return certificates;
}
@Path("/{id}")
@GET
@Produces({MediaType.APPLICATION_OCTET_STREAM, CryptoMediaType.APPLICATION_PKIX_CERT, CryptoMediaType.APPLICATION_X_PEM_FILE, MediaType.TEXT_PLAIN})
public X509Certificate retrieveOneX509Certificate(@BeanParam L locator) {
log.debug("retrieveOneX509Certificate");
T item = getRepository().retrieve(locator);
if (item == null) {
throw new WebApplicationException(Response.Status.NOT_FOUND);
}
X509Certificate certificate = item.getX509Certificate();
return certificate;
}
}