/* * Copyright 2003 Federal Chancellery Austria * MOA-ID 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.id.config; import java.math.BigInteger; import java.security.Principal; import java.security.cert.X509Certificate; import java.util.Map; import at.gv.egovernment.moa.id.data.IssuerAndSerial; /** * Base class for AuthConfigurationProvider and ProxyConfigurationProvider, * providing functions common to both of them. * * @author Paul Ivancsics * @version $Id$ */ public class ConfigurationProvider { /** * Constructor */ public ConfigurationProvider() { super(); } /** * The name of the system property which contains the file name of the * configuration file. */ public static final String CONFIG_PROPERTY_NAME = "moa.id.configuration"; /** * The name of the generic configuration property giving the certstore directory path. */ public static final String DIRECTORY_CERTSTORE_PARAMETER_PROPERTY = "DirectoryCertStoreParameters.RootDir"; /** * The name of the generic configuration property switching the ssl revocation checking on/off */ public static final String TRUST_MANAGER_REVOCATION_CHECKING = "TrustManager.RevocationChecking"; /** * A Map which contains generic configuration information. Maps a * configuration name (a String) to a configuration value (also a * String). */ protected Map genericConfiguration; /** The default chaining mode. */ protected String defaultChainingMode; /** * A Map which contains the IssuerAndSerial to * chaining mode (a String) mapping. */ protected Map chainingModes; /** * the URL for the trusted CA Certificates */ protected String trustedCACertificates; /** * main configuration file directory name used to configure MOA-ID */ protected String rootConfigFileDir; /** * Returns the main configuration file directory used to configure MOA-ID * * @return the directory */ public String getRootConfigFileDir() { return rootConfigFileDir; } /** * Returns the mapping of generic configuration properties. * * @return The mapping of generic configuration properties (a name to value * mapping) from the configuration. */ public Map getGenericConfiguration() { return genericConfiguration; } /** * Returns the value of a parameter from the generic configuration section. * * @return the parameter value; null if no such parameter */ public String getGenericConfigurationParameter(String parameter) { if (! genericConfiguration.containsKey(parameter)) return null; return (String)genericConfiguration.get(parameter); } /** * Return the chaining mode for a given trust anchor. * * @param trustAnchor The trust anchor for which the chaining mode should be * returned. * @return The chaining mode for the given trust anchor. If the trust anchor * has not been configured separately, the system default will be returned. */ public String getChainingMode(X509Certificate trustAnchor) { Principal issuer = trustAnchor.getIssuerDN(); BigInteger serial = trustAnchor.getSerialNumber(); IssuerAndSerial issuerAndSerial = new IssuerAndSerial(issuer, serial); String mode = (String) chainingModes.get(issuerAndSerial); return mode != null ? mode : defaultChainingMode; } /** * Returns the trustedCACertificates. * @return String */ public String getTrustedCACertificates() { return trustedCACertificates; } }