/*
* Copyright 2003 Federal Chancellery Austria
* MOA-SPSS has been developed in a cooperation between BRZ, the Federal
* Chancellery Austria - ICT staff unit, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egovernment.moa.spss.server.iaik.config;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.gv.egovernment.moa.sig.tsl.exception.TslException;
import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider;
import at.gv.egovernment.moa.spss.server.logging.IaikLog;
import at.gv.egovernment.moa.spss.server.logging.TransactionId;
import at.gv.egovernment.moa.spss.tsl.TSLServiceFactory;
import iaik.logging.Log;
import iaik.pki.store.certstore.CertStoreConfiguration;
import iaik.pki.store.certstore.CertStoreParameters;
import iaik.pki.store.certstore.directory.DirectoryCertStoreParameters;
import iaik.pki.store.certstore.directory.DirectoryStoreException;
import iaik.pki.store.certstore.utils.DirectoryCertStoreConverter;
/**
* An implementation of the CertStoreConfiguration
interface based
* on MOA configuration data.
*
* @see iaik.pki.store.certstore.CertStoreConfiguration
* @author Patrick Peck
* @version $Id$
*/
public class CertStoreConfigurationImpl extends AbstractObservableConfiguration implements CertStoreConfiguration {
private static final Logger logger = LoggerFactory.getLogger(CertStoreConfigurationImpl.class);
/** The configuration parameters of the CertStore
. */
private CertStoreParameters[] parameters;
/**
* Create a new CertStoreConfigurationImpl
.
*
* @param config
* The MOA configuration from which the configuration data is
* being read.
*/
public CertStoreConfigurationImpl(ConfigurationProvider config) {
String certStoreRoot = config.getCertStoreLocation();
DirectoryCertStoreParameters dirParameters = new DirectoryCertStoreParametersImpl("MOA Directory CertStore",
certStoreRoot, true, false);
if (TSLServiceFactory.isInitialized()) {
try {
CertStoreParameters tslCertStore = TSLServiceFactory.getTSLServiceClient().getCertStoreWithTSLCertificates();
parameters = new CertStoreParameters[] { dirParameters, tslCertStore};
} catch (TslException e) {
logger.warn("TSL based CertStore initialisation FAILED.", e);
logger.warn("Only Directory based CertStore is used ... ");
parameters = new CertStoreParameters[] { dirParameters };
}
} else {
logger.info("Trust-Status List support is not active. Use only Directory based CertStore.");
parameters = new CertStoreParameters[] { dirParameters };
}
}
/**
* @see iaik.pki.store.certstore.CertStoreConfiguration#getParameters()
*/
public CertStoreParameters[] getParameters() {
return parameters;
}
}