///******************************************************************************* // * Copyright 2014 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. // ******************************************************************************/ ///* // * 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.auth; // //import java.io.File; //import java.io.FileInputStream; //import java.io.FileNotFoundException; //import java.io.IOException; //import java.math.BigInteger; //import java.net.MalformedURLException; //import java.util.ArrayList; //import java.util.Arrays; //import java.util.Date; //import java.util.HashMap; //import java.util.List; //import java.util.Map; //import java.util.Properties; // //import javax.xml.bind.JAXBContext; //import javax.xml.bind.Unmarshaller; // //import org.hibernate.cfg.Configuration; // //import at.gv.egovernment.moa.id.auth.AuthenticationServer; //import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; //import at.gv.egovernment.moa.id.auth.modules.internal.tasks.GetMISSessionIDTask; //import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants; //import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead; // //import at.gv.egovernment.moa.id.commons.db.MOASessionDBUtils; //import at.gv.egovernment.moa.id.commons.db.StatisticLogDBUtils; //import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentGeneral; //import at.gv.egovernment.moa.id.commons.db.dao.config.ChainingModes; //import at.gv.egovernment.moa.id.commons.db.dao.config.Contact; //import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs; //import at.gv.egovernment.moa.id.commons.db.dao.config.ForeignIdentities; //import at.gv.egovernment.moa.id.commons.db.dao.config.IdentificationNumber; //import at.gv.egovernment.moa.id.commons.db.dao.config.IdentityLinkSigners; //import at.gv.egovernment.moa.id.commons.db.dao.config.LegacyAllowed; //import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration; //import at.gv.egovernment.moa.id.commons.db.dao.config.MOASP; //import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; //import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineMandates; //import at.gv.egovernment.moa.id.commons.db.dao.config.Organization; //import at.gv.egovernment.moa.id.commons.db.dao.config.PVP2; //import at.gv.egovernment.moa.id.commons.db.dao.config.Protocols; //import at.gv.egovernment.moa.id.commons.db.dao.config.SLRequestTemplates; //import at.gv.egovernment.moa.id.commons.db.dao.config.SSO; //import at.gv.egovernment.moa.id.commons.db.dao.config.SecurityLayer; //import at.gv.egovernment.moa.id.commons.db.dao.config.TimeOuts; //import at.gv.egovernment.moa.id.commons.db.dao.config.TrustAnchor; //import at.gv.egovernment.moa.id.commons.db.dao.config.VerifyAuthBlock; //import at.gv.egovernment.moa.id.commons.db.dao.config.VerifyIdentityLink; //import at.gv.egovernment.moa.id.commons.db.dao.session.AssertionStore; //import at.gv.egovernment.moa.id.commons.db.dao.session.AuthenticatedSessionStore; //import at.gv.egovernment.moa.id.commons.db.dao.session.ExceptionStore; //import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionStore; //import at.gv.egovernment.moa.id.commons.db.dao.session.OASessionStore; //import at.gv.egovernment.moa.id.commons.db.dao.session.OldSSOSessionIDStore; //import at.gv.egovernment.moa.id.commons.db.dao.statistic.StatisticLog; //import at.gv.egovernment.moa.id.config.ConfigurationException; //import at.gv.egovernment.moa.id.config.ConfigurationProvider; //import at.gv.egovernment.moa.id.config.ConfigurationProviderImpl; //import at.gv.egovernment.moa.id.config.ConfigurationUtils; //import at.gv.egovernment.moa.id.config.ConnectionParameter; //import at.gv.egovernment.moa.id.config.ConnectionParameterForeign; //import at.gv.egovernment.moa.id.config.ConnectionParameterMOASP; //import at.gv.egovernment.moa.id.config.ConnectionParameterMandate; //import at.gv.egovernment.moa.id.config.auth.data.ProtocolAllowed; //import at.gv.egovernment.moa.id.config.legacy.BuildFromLegacyConfig; //import at.gv.egovernment.moa.id.config.stork.STORKConfig; //import at.gv.egovernment.moa.id.data.IssuerAndSerial; //import at.gv.egovernment.moa.id.process.dao.ProcessInstanceStore; //import at.gv.egovernment.moa.id.protocols.pvp2x.config.MOADefaultBootstrap; //import at.gv.egovernment.moa.logging.Logger; //import at.gv.egovernment.moa.util.MiscUtil; //import at.gv.util.config.EgovUtilPropertiesConfiguration; // //import com.fasterxml.jackson.annotation.JsonIgnore; //import com.fasterxml.jackson.annotation.JsonProperty; // ///** // * A class providing access to the Auth Part of the MOA-ID configuration data. // * // *

Configuration data is read from an XML file, whose location is given by // * the moa.id.configuration system property.

// *

This class implements the Singleton pattern. The reload() // * method can be used to update the configuration data. Therefore, it is not // * guaranteed that consecutive calls to getInstance() will return // * the same AuthConfigurationProvider all the time. During the // * processing of a web service request, the current // * TransactionContext should be used to obtain the // * AuthConfigurationProvider local to that request.

// * // * @author Patrick Peck // * @author Stefan Knirsch // * // * @version $Id$ // * // *@deprecated Use {@link AuthConfigProviderFactory} instead // */ //public class AuthConfigurationProvider extends ConfigurationProviderImpl implements AuthConfiguration { // //// /** DEFAULT_ENCODING is "UTF-8" */ //// private static final String DEFAULT_ENCODING="UTF-8"; // /** // * The name of the generic configuration property giving the authentication session time out. // */ // public static final String AUTH_SESSION_TIMEOUT_PROPERTY = // "AuthenticationSession.TimeOut"; // /** // * The name of the generic configuration property giving the authentication data time out. // */ // public static final String AUTH_DATA_TIMEOUT_PROPERTY = // "AuthenticationData.TimeOut"; // // /** // * BKUSelectionType HTMLComplete, according to schema type BKUSelectionType // */ // public static final String BKU_SELECTION_TYPE_HTMLCOMPLETE = // "HTMLComplete"; // // /** // * BKUSelectionType HTMLSelect, according to schema type BKUSelectionType // */ // public static final String BKU_SELECTION_TYPE_HTMLSELECT = // "HTMLSelect"; // // /** // * The name of the generic configuration property allowing https connection to // * the user frontend servlets ("StartAuthentication" and "SelectBKU" servlets) // */ // public static final String FRONTEND_SERVLETS_ENABLE_HTTP_CONNECTION_PROPERTY = // "FrontendServlets.EnableHTTPConnection"; // // /** // * The name of the generic configuration property allowing to set a individual // * DATA URL used to communicate with the BKU (SecurityLayer) // */ // public static final String INDIVIDUAL_DATA_URL_PREFIX = // "FrontendServlets.DataURLPrefix"; // // /** Singleton instance. null, if none has been created. */ // private static AuthConfigurationProvider instance; // // // // // configuration data // // // private static MOAIDConfiguration moaidconfig = null; // // private static Properties props = null; // // private static STORKConfig storkconfig = null; // // private static TimeOuts timeouts = null; // // private static PVP2 pvp2general = null; // // private static String alternativesourceid = null; // // private static List legacyallowedprotocols = new ArrayList(); // private static ProtocolAllowed allowedProtcols = null; // // private static VerifyAuthBlock verifyidl = null; // // private static ConnectionParameter MoaSpConnectionParameter = null; // private static ConnectionParameter ForeignIDConnectionParameter = null; // private static ConnectionParameter OnlineMandatesConnectionParameter = null; // // private static String MoaSpIdentityLinkTrustProfileID = null; // // private static List TransformsInfos = null; // private static List IdentityLinkX509SubjectNames = new ArrayList(); // // private static Map SLRequestTemplates = new HashMap(); // private static Map DefaultBKUURLs = new HashMap(); // // private static SSO ssoconfig = null; // // private EgovUtilPropertiesConfiguration eGovUtilsConfig = null; // // private static Date date = null; // // private String publicURLPreFix = null; // // /** // * Return the single instance of configuration data. // * // * @return AuthConfigurationProvider The current configuration data. // * @throws ConfigurationException // */ // public static synchronized AuthConfigurationProvider getInstance() // throws ConfigurationException { // // if (instance == null) { // reload(); // } // return instance; // } // // public static Date getTimeStamp() { // return date; // } // // /** // * Reload the configuration data and set it if successful. // * // * @return AuthConfigurationProvider The loaded configuration data. // * @throws ConfigurationException Failure to load the configuration data. // */ // public static synchronized AuthConfigurationProvider reload() // throws ConfigurationException { // String fileName = System.getProperty(ConfigurationProvider.CONFIG_PROPERTY_NAME); // if (fileName == null) { // throw new ConfigurationException("config.01", null); // } // Logger.info("Loading MOA-ID-AUTH configuration " + fileName); // // instance = new AuthConfigurationProvider(fileName); // return instance; // } // // // /** // * Constructor for AuthConfigurationProvider. // * @param fileName // * @throws ConfigurationException // */ // public AuthConfigurationProvider(String fileName) // throws ConfigurationException { // // load(fileName); // } // // /** // * Protected constructor. Used by unit tests. // */ // protected AuthConfigurationProvider() { // } // // /** // * Load the configuration data from XML file with the given name and build // * the internal data structures representing the MOA ID configuration. // * // * @param fileName The name of the XML file to load. // * @throws ConfigurationException The MOA configuration could not be // * read/built. // */ // private void load(String fileName) throws ConfigurationException { // // try { // //Initial Hibernate Framework // Logger.trace("Initializing Hibernate framework."); // // //Load MOAID-2.0 properties file // File propertiesFile = new File(fileName); // FileInputStream fis = null; // props = new Properties(); // // // determine the directory of the root config file // rootConfigFileDir = new File(fileName).getParent(); // // try { // rootConfigFileDir = new File(rootConfigFileDir).toURL().toString(); // // } catch (MalformedURLException t) { // throw new ConfigurationException("config.03", null, t); // } // // try { // fis = new FileInputStream(propertiesFile); // props.load(fis); // // // read MOAID Session Hibernate properties // Properties moaSessionProp = new Properties(); // for (Object key : props.keySet()) { // String propPrefix = "moasession."; // if (key.toString().startsWith(propPrefix+"hibernate")) { // String propertyName = key.toString().substring(propPrefix.length()); // moaSessionProp.put(propertyName, props.get(key.toString())); // } // } // // // read Config Hibernate properties // Properties configProp = new Properties(); // for (Object key : props.keySet()) { // String propPrefix = "configuration."; // if (key.toString().startsWith(propPrefix+"hibernate")) { // String propertyName = key.toString().substring(propPrefix.length()); // configProp.put(propertyName, props.get(key.toString())); // } // } // // // read advanced logging properties // Properties statisticProps = new Properties(); // for (Object key : props.keySet()) { // String propPrefix = "advancedlogging."; // if (key.toString().startsWith(propPrefix+"hibernate")) { // String propertyName = key.toString().substring(propPrefix.length()); // statisticProps.put(propertyName, props.get(key.toString())); // } // } // // // initialize hibernate // synchronized (AuthConfigurationProvider.class) { // // //Initial config Database // // ConfigurationDBUtils.initHibernate(configProp); // // //initial MOAID Session Database // Configuration config = new Configuration(); // config.addAnnotatedClass(AssertionStore.class); // config.addAnnotatedClass(AuthenticatedSessionStore.class); // config.addAnnotatedClass(OASessionStore.class); // config.addAnnotatedClass(OldSSOSessionIDStore.class); // config.addAnnotatedClass(ExceptionStore.class); // config.addAnnotatedClass(InterfederationSessionStore.class); // config.addAnnotatedClass(ProcessInstanceStore.class); // config.addProperties(moaSessionProp); // MOASessionDBUtils.initHibernate(config, moaSessionProp); // // //initial advanced logging // if (isAdvancedLoggingActive()) { // Logger.info("Advanced statistic log is activated, starting initialization process ..."); // Configuration statisticconfig = new Configuration(); // statisticconfig.addAnnotatedClass(StatisticLog.class); // statisticconfig.addProperties(statisticProps); // StatisticLogDBUtils.initHibernate(statisticconfig, statisticProps); // Logger.info("Advanced statistic log is initialized."); // } // // } // Logger.trace("Hibernate initialization finished."); // // } catch (FileNotFoundException e) { // throw new ConfigurationException("config.03", null, e); // // } catch (IOException e) { // throw new ConfigurationException("config.03", null, e); // // } catch (ExceptionInInitializerError e) { // throw new ConfigurationException("config.17", null, e); // // } finally { // if (fis != null) // fis.close(); // // } // // // //Initialize OpenSAML for STORK // Logger.info("Starting initialization of OpenSAML..."); // MOADefaultBootstrap.bootstrap(); // //DefaultBootstrap.bootstrap(); // Logger.debug("OpenSAML successfully initialized"); // // // String legacyconfig = props.getProperty("configuration.xml.legacy"); // String xmlconfig = props.getProperty("configuration.xml"); //// String xmlconfigout = props.getProperty("configuration.xml.out"); // // // //configure eGovUtils client implementations // // //read eGovUtils client configuration // Properties eGovUtilsConfigProp = new Properties(); // for (Object key : props.keySet()) { // String propPrefix = "service."; // if (key.toString().startsWith(propPrefix+"egovutil")) { // String propertyName = key.toString().substring(propPrefix.length()); // eGovUtilsConfigProp.put(propertyName, props.get(key.toString())); // } // } // if (!eGovUtilsConfigProp.isEmpty()) { // Logger.info("Start eGovUtils client implementation configuration ..."); // eGovUtilsConfig = // new EgovUtilPropertiesConfiguration(eGovUtilsConfigProp, rootConfigFileDir); // } // // // //TODO: removed in MOA-ID 3.x //// //check if XML config should be used //// if (MiscUtil.isNotEmpty(legacyconfig) || MiscUtil.isNotEmpty(xmlconfig)) { //// Logger.warn("WARNING! MOA-ID 2.0 is started with XML configuration. This setup overstrike the actual configuration in the Database!"); //// //moaidconfig = ConfigurationDBRead.getMOAIDConfiguration(); //// moaidconfig = NewConfigurationDBRead.getMOAIDConfiguration(); //// if (moaidconfig.getAuthComponentGeneral()!= null || moaidconfig.getChainingModes() != null || moaidconfig.getTrustedCACertificates() != null || moaidconfig.getDefaultBKUs() != null //// || moaidconfig.getSLRequestTemplates() != null || moaidconfig.getTimestampItem() != null || moaidconfig.getPvp2RefreshItem() != null) { //// //// // ConfigurationDBUtils.delete(moaidconfig); //// for(String key : MOAIDConfigurationConstants.getMOAIDConfigurationKeys()){ //// NewConfigurationDBWrite.delete(key); //// } //// } //// //// //// //List oas = ConfigurationDBRead.getAllOnlineApplications(); //// List oas = NewConfigurationDBRead.getAllOnlineApplications(); //// if (oas != null && oas.size() > 0) { //// // for (OnlineApplication oa : oas) //// // ConfigurationDBUtils.delete(oa); //// NewConfigurationDBWrite.delete(MOAIDConfigurationConstants.ONLINE_APPLICATIONS_KEY); //// } //// } //// //// //load legacy config if it is configured //// if (MiscUtil.isNotEmpty(legacyconfig)) { //// Logger.warn("WARNING! MOA-ID 2.0 is started with legacy configuration. This setup is not recommended!"); //// //// MOAIDConfiguration moaconfig = BuildFromLegacyConfig.build(new File(legacyconfig), rootConfigFileDir, null); //// //// List oas = moaconfig.getOnlineApplication(); //// // for (OnlineApplication oa : oas) //// // ConfigurationDBUtils.save(oa); //// NewConfigurationDBWrite.saveOnlineApplications(oas); //// //// moaconfig.setOnlineApplication(null); //// // ConfigurationDBUtils.save(moaconfig); //// NewConfigurationDBWrite.save(moaconfig); //// //// Logger.info("Legacy Configuration load is completed."); //// //// //// } //// //// //load MOA-ID 2.x config from XML //// if (MiscUtil.isNotEmpty(xmlconfig)) { //// Logger.warn("Load configuration from MOA-ID 2.x XML configuration"); //// //// try { //// JAXBContext jc = JAXBContext.newInstance("at.gv.egovernment.moa.id.commons.db.dao.config"); //// Unmarshaller m = jc.createUnmarshaller(); //// File file = new File(xmlconfig); //// MOAIDConfiguration moaconfig = (MOAIDConfiguration) m.unmarshal(file); //// //ConfigurationDBUtils.save(moaconfig); //// //// List importoas = moaconfig.getOnlineApplication(); //// // for (OnlineApplication importoa : importoas) { //// // ConfigurationDBUtils.saveOrUpdate(importoa); //// // } //// //// NewConfigurationDBWrite.saveOnlineApplications(importoas); //// //// moaconfig.setOnlineApplication(null); //// //ConfigurationDBUtils.saveOrUpdate(moaconfig); //// NewConfigurationDBWrite.save(moaconfig); //// //// } catch (Exception e) { //// Logger.warn("MOA-ID XML configuration can not be loaded from File.", e); //// throw new ConfigurationException("config.02", null); //// } //// Logger.info("XML Configuration load is completed."); //// } // // reloadDataBaseConfig(); // // // } catch (Throwable t) { // throw new ConfigurationException("config.02", null, t); // } // } // // protected MOAIDConfiguration loadDataBaseConfig() { // return ConfigurationDBRead.getMOAIDConfiguration(); // } // // public synchronized void reloadDataBaseConfig() throws ConfigurationException { // // Logger.info("Read MOA-ID 2.0 configuration from database."); // moaidconfig = loadDataBaseConfig(); // Logger.info("MOA-ID 2.0 is loaded."); // // if (moaidconfig == null) { // Logger.warn("NO MOA-ID configuration found."); // throw new ConfigurationException("config.18", null); // } // // //build STORK Config // AuthComponentGeneral auth = getAuthComponentGeneral(); // ForeignIdentities foreign = auth.getForeignIdentities(); // if (foreign == null ) { // Logger.warn("Error in MOA-ID Configuration. No STORK configuration found."); // } else // storkconfig = new STORKConfig(foreign.getSTORK(), props, rootConfigFileDir); // // //load Chaining modes // ChainingModes cm = moaidconfig.getChainingModes(); // if (cm != null) { // defaultChainingMode = cm.getSystemDefaultMode().value(); // // List tas = cm.getTrustAnchor(); // // chainingModes = new HashMap(); // for (TrustAnchor ta : tas) { // IssuerAndSerial is = new IssuerAndSerial(ta.getX509IssuerName(), ta.getX509SerialNumber()); // chainingModes.put(is, ta.getMode().value()); // } // } else { // Logger.warn("Error in MOA-ID Configuration. No ChainingMode configuration found."); // throw new ConfigurationException("config.02", null); // } // // //set Trusted CA certs directory // trustedCACertificates = rootConfigFileDir + moaidconfig.getTrustedCACertificates(); // // //set CertStoreDirectory // setCertStoreDirectory(); // // //set TrustManagerRevocationChecking // setTrustManagerRevocationChecking(); // // //set default timeouts // timeouts = new TimeOuts(); // timeouts.setAssertion(new BigInteger("300")); // timeouts.setMOASessionCreated(new BigInteger("2700")); // timeouts.setMOASessionUpdated(new BigInteger("1200")); // // //search timeouts in config // if (auth.getGeneralConfiguration() != null) { // if (auth.getGeneralConfiguration().getTimeOuts() != null) { // if (auth.getGeneralConfiguration().getTimeOuts().getAssertion() != null) // timeouts.setAssertion(auth.getGeneralConfiguration().getTimeOuts().getAssertion()); // // if (auth.getGeneralConfiguration().getTimeOuts().getMOASessionCreated() != null) // timeouts.setMOASessionCreated(auth.getGeneralConfiguration().getTimeOuts().getMOASessionCreated()); // // if (auth.getGeneralConfiguration().getTimeOuts().getMOASessionUpdated() != null) // timeouts.setMOASessionUpdated(auth.getGeneralConfiguration().getTimeOuts().getMOASessionUpdated()); // // } else { // Logger.info("No TimeOuts defined. Use default values"); // } // } // // // sets the authentication session and authentication data time outs // AuthenticationServer.getInstance() // .setSecondsSessionTimeOutCreated(timeouts.getMOASessionCreated().longValue()); // // AuthenticationServer.getInstance() // .setSecondsSessionTimeOutUpdated(timeouts.getMOASessionUpdated().longValue()); // // AuthenticationServer.getInstance() // .setSecondsAuthDataTimeOut(timeouts.getAssertion().longValue()); // // // // //set PVP2 general config // Protocols protocols = auth.getProtocols(); // if (protocols != null) { // // allowedProtcols = new ProtocolAllowed(); // // if (protocols.getSAML1() != null) { // allowedProtcols.setSAML1Active(protocols.getSAML1().isIsActive()); // // //load alternative sourceID // if (MiscUtil.isNotEmpty(protocols.getSAML1().getSourceID())) // alternativesourceid = protocols.getSAML1().getSourceID(); // // } // // if (protocols.getOAuth() != null) { // allowedProtcols.setOAUTHActive(protocols.getOAuth().isIsActive()); // } // // if (protocols.getPVP2() != null) { // PVP2 el = protocols.getPVP2(); // // allowedProtcols.setPVP21Active(el.isIsActive()); // // pvp2general = new PVP2(); // pvp2general.setIssuerName(el.getIssuerName()); // pvp2general.setPublicURLPrefix(el.getPublicURLPrefix()); // // if (el.getOrganization() != null) { // Organization org = new Organization(); // pvp2general.setOrganization(org); // org.setDisplayName(el.getOrganization().getDisplayName()); // org.setName(el.getOrganization().getName()); // org.setURL(el.getOrganization().getURL()); // } // // if (el.getContact() != null) { // List cont = new ArrayList(); // pvp2general.setContact(cont); // for (Contact e : el.getContact()) { // Contact c = new Contact(); // c.setCompany(e.getCompany()); // c.setGivenName(e.getGivenName()); // c.getMail().addAll(e.getMail()); // c.getPhone().addAll(e.getPhone()); // c.setSurName(e.getSurName()); // c.setType(e.getType()); // cont.add(c); // } // } // } // } else { // Logger.warn("Error in MOA-ID Configuration. No general Protcol configuration found."); // } // // //set alternativeSourceID // if (auth.getGeneralConfiguration() != null) { // // //TODO: can be removed in a further version, because it is moved to SAML1 config // if (MiscUtil.isEmpty(alternativesourceid)) // alternativesourceid = auth.getGeneralConfiguration().getAlternativeSourceID(); // // if (MiscUtil.isNotEmpty(auth.getGeneralConfiguration().getPublicURLPreFix())) // publicURLPreFix = auth.getGeneralConfiguration().getPublicURLPreFix(); // // else { // Logger.error("No Public URL Prefix configured."); // throw new ConfigurationException("config.05", new Object[]{"Public URL Prefix"}); // } // // } else { // Logger.warn("Error in MOA-ID Configuration. No GeneralConfig defined."); // throw new ConfigurationException("config.02", null); // } // // //set LegacyAllowedProtocols // try { // if (auth.getProtocols() != null) { // Protocols procols = auth.getProtocols(); // if (procols.getLegacyAllowed() != null) { // LegacyAllowed legacy = procols.getLegacyAllowed(); // legacyallowedprotocols = new ArrayList(legacy.getProtocolName()); // } // } // } catch (Exception e) { // Logger.info("No protocols found with legacy allowed flag!"); // } // // //set VerifyAuthBlockConfig // MOASP moasp = getMOASPConfig(auth); // // VerifyAuthBlock el = moasp.getVerifyAuthBlock(); // if (el != null) { // verifyidl = new VerifyAuthBlock(); // verifyidl.setTrustProfileID(el.getTrustProfileID()); // verifyidl.setVerifyTransformsInfoProfileID(new ArrayList(el.getVerifyTransformsInfoProfileID())); // } // else { // Logger.warn("Error in MOA-ID Configuration. No Trustprofile for AuthBlock validation."); // throw new ConfigurationException("config.02", null); // } // // //set MOASP connection parameters // if (moasp.getConnectionParameter() != null) // MoaSpConnectionParameter = new ConnectionParameterMOASP(moasp.getConnectionParameter(), props, this.rootConfigFileDir); // else // MoaSpConnectionParameter = null; // // //set ForeignIDConnectionParameters // if (foreign != null) { // ForeignIDConnectionParameter = new ConnectionParameterForeign(foreign.getConnectionParameter(), props, this.rootConfigFileDir); // } else { // Logger.warn("Error in MOA-ID Configuration. No Connectionconfiguration to SZRGW Service found"); // } // // //set OnlineMandateConnectionParameters // OnlineMandates ovs = auth.getOnlineMandates(); // if (ovs != null) { // OnlineMandatesConnectionParameter = new ConnectionParameterMandate(ovs.getConnectionParameter(), props, this.rootConfigFileDir); // // } else { // Logger.warn("Error in MOA-ID Configuration. No Connectionconfiguration to OVS Service found"); // } // // //set MOASP IdentityLink Trust-ProfileID // VerifyIdentityLink verifyidl = moasp.getVerifyIdentityLink(); // if (verifyidl != null) // MoaSpIdentityLinkTrustProfileID = verifyidl.getTrustProfileID(); // else { // Logger.warn("Error in MOA-ID Configuration. No Trustprofile for IdentityLink validation."); // throw new ConfigurationException("config.02", null); // } // // //set SL transformation infos // SecurityLayer seclayer = auth.getSecurityLayer(); // if (seclayer == null) { // Logger.warn("Error in MOA-ID Configuration. No generalAuthConfiguration->SecurityLayer found"); // throw new ConfigurationException("config.02", null); // } else { // TransformsInfos = ConfigurationUtils.getTransformInfos(seclayer.getTransformsInfo()); // // if (TransformsInfos == null || TransformsInfos.size() == 0) { // Logger.error("No Security-Layer Transformation found."); // throw new ConfigurationException("config.05", new Object[]{"Security-Layer Transformation"}); // } // // } // // //set IdentityLinkSignerSubjectNames // IdentityLinkX509SubjectNames = new ArrayList(); // IdentityLinkSigners idlsigners = auth.getIdentityLinkSigners(); // if (idlsigners != null) { // Logger.debug("Load own IdentityLinkX509SubjectNames"); // IdentityLinkX509SubjectNames.addAll(new ArrayList(idlsigners.getX509SubjectName())); // } // // // now add the default identity link signers // String[] identityLinkSignersWithoutOID = MOAIDAuthConstants.IDENTITY_LINK_SIGNERS_WITHOUT_OID; // for (int i=0; i getLegacyAllowedProtocols() { // return legacyallowedprotocols; // } // // // /** // * Provides configuration information regarding the online application behind // * the given URL, relevant to the MOA-ID Auth component. // * // * @param oaURL URL requested for an online application // * @return an OAAuthParameter, or null // * if none is applicable // */ // public OAAuthParameter getOnlineApplicationParameter(String oaURL) { // // OnlineApplication oa = ConfigurationDBRead.getActiveOnlineApplication(oaURL); // // if (oa == null) { // Logger.warn("Online application with identifier " + oaURL + " is not found."); // return null; // } // // return new OAAuthParameter(oa); // } // // // /** // * Return a string with a url-reference to the VerifyAuthBlock trust // * profile id within the moa-sp part of the authentication component // * // * @return String with a url-reference to the VerifyAuthBlock trust profile ID // * @throws ConfigurationException // */ // public String getMoaSpAuthBlockTrustProfileID() throws ConfigurationException { // return verifyidl.getTrustProfileID(); // } // // /** // * Return a string array with references to all verify transform info // * IDs within the moa-sp part of the authentication component // * @return A string array containing all urls to the // * verify transform info IDs // * @throws ConfigurationException // */ // public List getMoaSpAuthBlockVerifyTransformsInfoIDs() throws ConfigurationException { // return verifyidl.getVerifyTransformsInfoProfileID(); // } // // /** // * Return a ConnectionParameter bean containing all information // * of the authentication component moa-sp element // * @return ConnectionParameter of the authentication component moa-sp element // * @throws ConfigurationException // */ // public ConnectionParameter getMoaSpConnectionParameter() throws ConfigurationException { // return MoaSpConnectionParameter; // } // // /** // * Return a ConnectionParameter bean containing all information // * of the authentication component foreigid element // * @return ConnectionParameter of the authentication component foreignid element // * @throws ConfigurationException // */ // public ConnectionParameter getForeignIDConnectionParameter() throws ConfigurationException { // return ForeignIDConnectionParameter; // } // // /** // * Return a ConnectionParameter bean containing all information // * of the authentication component OnlineMandates element // * @return ConnectionParameter of the authentication component OnlineMandates element // * @throws ConfigurationException // */ // public ConnectionParameter getOnlineMandatesConnectionParameter() throws ConfigurationException { // return OnlineMandatesConnectionParameter; // } // // /** // * Return a string with a url-reference to the VerifyIdentityLink trust // * profile id within the moa-sp part of the authentication component // * @return String with a url-reference to the VerifyIdentityLink trust profile ID // * @throws ConfigurationException // */ // public String getMoaSpIdentityLinkTrustProfileID() throws ConfigurationException { // return MoaSpIdentityLinkTrustProfileID; // } // // /** // * Returns the transformsInfos. // * @return String[] // * @throws ConfigurationException // */ // public List getTransformsInfos() throws ConfigurationException { // return TransformsInfos; // } // // /** // * Returns the identityLinkX509SubjectNames. // * @return List // * @throws ConfigurationException // */ // public List getIdentityLinkX509SubjectNames() throws ConfigurationException { // return IdentityLinkX509SubjectNames; // } // // public List getSLRequestTemplates() throws ConfigurationException { // return new ArrayList(SLRequestTemplates.values()); // } // // public String getSLRequestTemplates(String type) throws ConfigurationException { // String el = SLRequestTemplates.get(type); // if (MiscUtil.isNotEmpty(el)) // return el; // else { // Logger.warn("getSLRequestTemplates: BKU Type does not match: " // + IOAAuthParameters.ONLINEBKU + " or " + IOAAuthParameters.HANDYBKU + " or " + IOAAuthParameters.LOCALBKU); // return null; // } // } // // public List getDefaultBKUURLs() throws ConfigurationException { // return new ArrayList(DefaultBKUURLs.values()); // } // // public String getDefaultBKUURL(String type) throws ConfigurationException { // String el = DefaultBKUURLs.get(type); // if (MiscUtil.isNotEmpty(el)) // return el; // else { // Logger.warn("getSLRequestTemplates: BKU Type does not match: " // + IOAAuthParameters.ONLINEBKU + " or " + IOAAuthParameters.HANDYBKU + " or " + IOAAuthParameters.LOCALBKU); // return null; // } // } // //// public boolean isSSOBusinessService() throws ConfigurationException { //// //// if (ssoconfig != null && ssoconfig.getIdentificationNumber() != null) //// return true; //// else //// return false; //// } // // public String getSSOTagetIdentifier() throws ConfigurationException { // if (ssoconfig != null) // return ssoconfig.getTarget(); // else // return null; // } // //// public String getSSOTarget() throws ConfigurationException { //// if (ssoconfig!= null) //// return ssoconfig.getTarget(); //// //// return null; //// } // // public String getSSOFriendlyName() { // if (ssoconfig!= null) { // if (MiscUtil.isNotEmpty(ssoconfig.getFriendlyName())) // return ssoconfig.getFriendlyName(); // } // // return "Default MOA-ID friendly name for SSO"; // } // // public String getSSOSpecialText() { // if (ssoconfig!= null) { // String text = ssoconfig.getSpecialText(); // if (MiscUtil.isEmpty(text)) // text = new String(); // // return text; // } // return new String(); // } // // public String getMOASessionEncryptionKey() { // // String prop = props.getProperty("configuration.moasession.key"); // if (MiscUtil.isEmpty(prop)) // return null; // else // return prop; // } // // /** // * @return // */ // public String getMOAConfigurationEncryptionKey() { // String prop = props.getProperty("configuration.moaconfig.key"); // if (MiscUtil.isEmpty(prop)) // return null; // else // return prop; // } // // public boolean isIdentityLinkResigning() { // String prop = props.getProperty("configuration.resignidentitylink.active", "false"); // return Boolean.valueOf(prop); // } // // public String getIdentityLinkResigningKey() { // String prop = props.getProperty("configuration.resignidentitylink.keygroup"); // if (MiscUtil.isNotEmpty(prop)) // return prop; // else // return null; // } // // /** // * Checks if is fakeIdL is activated. // * // * @return true, if fake IdLs are available for stork // */ // public boolean isStorkFakeIdLActive() { // String prop = props.getProperty("stork.fakeIdL.active", "false"); // return Boolean.valueOf(prop); // } // // /** // * Gets the countries which will receive a fake IdL // * // * @return the countries // */ // public List getStorkFakeIdLCountries() { // String prop = props.getProperty("stork.fakeIdL.countries", ""); // return Arrays.asList(prop.replaceAll(" ", "").split(",")); // } // // /** // * Gets the resigning key (group) for the stork fake IdL. // * // * @return the resigning key // */ // public String getStorkFakeIdLResigningKey() { // String prop = props.getProperty("stork.fakeIdL.keygroup"); // if (MiscUtil.isNotEmpty(prop)) // return prop; // else // return null; // } // // /** // * Gets the countries for which it is configured to require no signature // * // * @return the stork no signature countries // */ // public List getStorkNoSignatureCountries() { // String prop = props.getProperty("stork.fakeIdL.noSignatureCountries", ""); // return Arrays.asList(prop.replaceAll(" ", "").split(",")); // } // // @JsonProperty("isMonitoringActive") // public boolean isMonitoringActive() { // String prop = props.getProperty("configuration.monitoring.active", "false"); // return Boolean.valueOf(prop); // } // // public String getMonitoringTestIdentityLinkURL() { // String prop = props.getProperty("configuration.monitoring.test.identitylink.url"); // if (MiscUtil.isNotEmpty(prop)) // return prop; // else // return null; // } // // public String getMonitoringMessageSuccess() { // String prop = props.getProperty("configuration.monitoring.message.success"); // if (MiscUtil.isNotEmpty(prop)) // return prop; // else // return null; // } // // public boolean isAdvancedLoggingActive() { // String prop = props.getProperty("configuration.advancedlogging.active", "false"); // return Boolean.valueOf(prop); // } // // public String getPublicURLPrefix() { // return publicURLPreFix; // } // // public boolean isPVP2AssertionEncryptionActive() { // String prop = props.getProperty("protocols.pvp2.assertion.encryption.active", "true"); // return Boolean.valueOf(prop); // } // // public boolean isCertifiacteQCActive() { // String prop = props.getProperty("configuration.validation.certificate.QC.ignore", "false"); // return !Boolean.valueOf(prop); // } // // // //Load document service url from moa properties // public String getDocumentServiceUrl() { // String prop = props.getProperty("stork.documentservice.url", "false"); // return prop; // } // // // public boolean isPVPSchemaValidationActive() { // String prop = props.getProperty("protocols.pvp2.schemavalidation", "true"); // return Boolean.valueOf(prop); // } // // /** // * Returns the STORK Configuration // * @return STORK Configuration // * @throws ConfigurationException // */ // public STORKConfig getStorkConfig() throws ConfigurationException { // // return storkconfig; // } // // /** // * @return the eGovUtilsConfig // */ //@JsonIgnore //public EgovUtilPropertiesConfiguration geteGovUtilsConfig() { // return eGovUtilsConfig; //} // //private void setCertStoreDirectory() throws ConfigurationException { // AuthComponentGeneral auth = getAuthComponentGeneral(); // // if (auth.getGeneralConfiguration() != null) // certstoreDirectory = rootConfigFileDir + auth.getGeneralConfiguration().getCertStoreDirectory(); // else { // Logger.warn("Error in MOA-ID Configuration. No CertStoreDirectory defined."); // throw new ConfigurationException("config.02", null); // } // } // // private void setTrustManagerRevocationChecking() throws ConfigurationException { // AuthComponentGeneral auth = getAuthComponentGeneral(); // // if (auth.getGeneralConfiguration() != null && // auth.getGeneralConfiguration().isTrustManagerRevocationChecking() != null) // trustmanagerrevoationchecking = auth.getGeneralConfiguration().isTrustManagerRevocationChecking(); // else { // Logger.warn("No TrustMangerRevoationChecking defined. Use default value = TRUE"); // throw new ConfigurationException("config.02", null); // } // } // // private static AuthComponentGeneral getAuthComponentGeneral() throws ConfigurationException { // AuthComponentGeneral authgeneral = moaidconfig.getAuthComponentGeneral(); // if (authgeneral == null) { // Logger.warn("Error in MOA-ID Configuration. No generalAuthConfiguration found"); // throw new ConfigurationException("config.02", null); // } // return authgeneral; // } // // private static MOASP getMOASPConfig(AuthComponentGeneral authgeneral) throws ConfigurationException { // MOASP moasp = authgeneral.getMOASP(); // // if (moasp == null) { // Logger.warn("Error in MOA-ID Configuration. No MOASP configuration found"); // throw new ConfigurationException("config.02", null); // } // return moasp; // } // ///* (non-Javadoc) // * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getConfigurationWithPrefix(java.lang.String) // */ //@Override //public Properties getConfigurationWithPrefix(String Prefix) { // // TODO Auto-generated method stub // return null; //} // ///* (non-Javadoc) // * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getConfigurationWithKey(java.lang.String) // */ //@Override //public String getConfigurationWithKey(String key) { // // TODO Auto-generated method stub // return null; //} // //}