package org.apereo.cas.adaptors.x509.authentication; import org.springframework.core.io.Resource; import javax.validation.constraints.Size; import java.io.IOException; import java.net.URI; import java.net.URL; import java.security.cert.CRLException; import java.security.cert.CertificateException; import java.security.cert.X509CRL; import java.util.Collection; /** * Defines operations needed to a fetch a CRL. * @author Misagh Moayyed * @since 4.1 */ public interface CRLFetcher { /** * Fetches a collection of crls from the specified resources * and returns a map of CRLs each tracked by its url. * @param crls resources to retrieve * @return map of crl entries and their urls * @throws IOException the exception thrown if resources cant be fetched * @throws CRLException the exception thrown if resources cant be fetched * @throws CertificateException the exception thrown if resources cant be fetched */ Collection<X509CRL> fetch(@Size(min=1) Collection<Resource> crls) throws IOException, CRLException, CertificateException; /** * Fetches a single of crl from the specified resource * and returns it. * @param crl resources to retrieve * @return the CRL entry * @throws IOException the exception thrown if resources cant be fetched * @throws CRLException the exception thrown if resources cant be fetched * @throws CertificateException the exception thrown if resources cant be fetched */ X509CRL fetch(String crl) throws IOException, CRLException, CertificateException; /** * Fetches a single of crl from the specified resource * and returns it. * @param crl resources to retrieve * @return the CRL entry * @throws IOException the exception thrown if resources cant be fetched * @throws CRLException the exception thrown if resources cant be fetched * @throws CertificateException the exception thrown if resources cant be fetched */ X509CRL fetch(URI crl) throws IOException, CRLException, CertificateException; /** * Fetches a single of crl from the specified resource * and returns it. * @param crl resources to retrieve * @return the CRL entry * @throws IOException the exception thrown if resources cant be fetched * @throws CRLException the exception thrown if resources cant be fetched * @throws CertificateException the exception thrown if resources cant be fetched */ X509CRL fetch(URL crl) throws IOException, CRLException, CertificateException; /** * Fetches a single of crl from the specified resource * and returns it. * @param crl resources to retrieve * @return the CRL entry * @throws IOException the exception thrown if resources cant be fetched * @throws CRLException the exception thrown if resources cant be fetched * @throws CertificateException the exception thrown if resources cant be fetched */ X509CRL fetch(Resource crl) throws IOException, CRLException, CertificateException; }