/* * 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; } }