package at.gv.egovernment.moa.spss.server.iaik.config;
import java.security.cert.X509Certificate;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import iaik.pki.revocation.RevocationConfiguration;
import at.gv.egovernment.moa.util.BoolUtils;
import at.gv.egovernment.moa.spss.server.config.DistributionPoint;
import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
/**
* An implementation of the RevocationConfiguration
interface using
* MOA configuration data.
*
* @see iaik.pki.revocation.RevocationConfiguration
* @author Patrick Peck
* @version $Id$
*/
public class RevocationConfigurationImpl
extends AbstractObservableConfiguration
implements RevocationConfiguration {
/** The ConfigurationProvider
to read the configuration data
* from. */
private ConfigurationProvider config;
/**
* Create a new RevocationConfigurationImpl
.
*
* @param config The underlying MOA configuration containing the configuration
* data.
*/
public RevocationConfigurationImpl(ConfigurationProvider config) {
this.config = config;
}
/**
* @see iaik.pki.revocation.RevocationConfiguration#getAlternativeDistributionPoints(java.security.cert.X509Certificate, java.util.Date)
*/
public Set getAlternativeDistributionPoints(
X509Certificate cert,
Date date) {
Set configuredPoints = config.getCRLDP(cert);
Set distributionPoints = new HashSet();
Iterator iter;
for (iter = configuredPoints.iterator(); iter.hasNext();) {
DistributionPoint dp = (DistributionPoint) iter.next();
distributionPoints.add(new CRLDistributionPointAdapter(dp));
}
return distributionPoints;
}
/**
* @see iaik.pki.revocation.RevocationConfiguration#archiveRevocationInfo(java.lang.String, java.lang.String)
*/
public boolean archiveRevocationInfo(String type, String uri) {
String info =
config.getGenericConfiguration(
ConfigurationProvider.ARCHIVE_REVOCATION_INFO_PROPERTY,
"false");
return info != null ? BoolUtils.valueOf(info) : false;
}
}