aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java204
1 files changed, 82 insertions, 122 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java
index 2cd14e607..60ae3882e 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java
@@ -9,41 +9,22 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.Date;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Properties;
import org.springframework.beans.factory.annotation.Autowired;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants;
import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
import at.gv.egovernment.moa.id.commons.config.persistence.MOAIDConfiguration;
-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.ConnectionParameterClientAuthType;
-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.GeneralConfiguration;
-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.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.SAML1;
-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.VerifyAuthBlock;
-import at.gv.egovernment.moa.id.commons.db.dao.config.VerifyIdentityLink;
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;
@@ -54,10 +35,8 @@ import at.gv.egovernment.moa.id.config.auth.data.ProtocolAllowed;
import at.gv.egovernment.moa.id.config.stork.STORKConfig;
import at.gv.egovernment.moa.id.protocols.pvp2x.PVP2XProtocol;
import at.gv.egovernment.moa.id.protocols.saml1.SAML1Protocol;
-import at.gv.egovernment.moa.id.protocols.saml1.SAML1RequestImpl;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.MiscUtil;
-import at.gv.util.config.EgovUtilPropertiesConfiguration;
/**
* A class providing access to the Auth Part of the MOA-ID configuration data.
@@ -68,12 +47,11 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
private static final boolean TRUST_MANAGER_REVOCATION_CHECKING_DEFAULT = true;
private MOAIDConfiguration configuration;
-
private final Properties properties = new Properties();
- private EgovUtilPropertiesConfiguration eGovUtilsConfig = null;
-
+ private ApplicationContext context = null;
public PropertyBasedAuthConfigurationProvider() {
+
}
/**
@@ -86,29 +64,39 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
File propertiesFile = new File(fileName);
rootConfigFileDir = propertiesFile.getParent();
- try (FileInputStream in = new FileInputStream(propertiesFile);) {
- properties.load(in);
-
- //read eGovUtils client configuration
- Properties eGovUtilsConfigProp = new Properties();
- for (Object key : properties.keySet()) {
- String propPrefix = "service.";
- if (key.toString().startsWith(propPrefix+"egovutil")) {
- String propertyName = key.toString().substring(propPrefix.length());
- eGovUtilsConfigProp.put(propertyName, properties.get(key.toString()));
- }
- }
- if (!eGovUtilsConfigProp.isEmpty()) {
- Logger.info("Start eGovUtils client implementation configuration ...");
- eGovUtilsConfig =
- new EgovUtilPropertiesConfiguration(eGovUtilsConfigProp, rootConfigFileDir);
- }
-
+ System.getProperties().setProperty("location", "file:" + fileName);
+ context = new ClassPathXmlApplicationContext(
+ new String[] { "moaid.configuration.beans.xml",
+ "configuration.beans.xml"
+ });
+ AutowireCapableBeanFactory acbFactory = context.getAutowireCapableBeanFactory();
+ acbFactory.autowireBean(this);
+
+ FileInputStream in = null;
+ try {
+ in = new FileInputStream(propertiesFile);
+ properties.load(in);
+ super.initial(properties);
} catch (FileNotFoundException e) {
throw new ConfigurationException("config.03", null, e);
+
} catch (IOException e) {
throw new ConfigurationException("config.03", null, e);
+
+ } catch (org.opensaml.xml.ConfigurationException e) {
+ Logger.error("OpenSAML initilalization FAILED. ", e);
+ throw new ConfigurationException("config.23", null, e);
+
+ } finally {
+ if (in != null)
+ try {
+ in.close();
+
+ } catch (IOException e) {
+ Logger.warn("Close MOA-ID-Auth configuration file FAILED.", e);
+
+ }
}
}
@@ -147,17 +135,33 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getPropertiesWithPrefix(java.lang.String)
*/
@Override
- public Properties getConfigurationWithPrefix(String Prefix) {
+ public Map<String, String> getConfigurationWithPrefix(String Prefix) {
try {
return configuration.getPropertySubset(Prefix);
} catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
Logger.warn("Loading property with Prefix " + Prefix + " FAILED.", e);
- return new Properties();
+ return new HashMap<String, String>();
}
}
+
+ /* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getPropertiesWithPrefix(java.lang.String)
+ */
+ @Override
+ public Map<String, String> getConfigurationWithWildCard(String key) {
+ try {
+ return configuration.searchPropertiesWithWildcard(key);
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Loading property with searchKey " + key + " FAILED.", e);
+ return new HashMap<String, String>();
+
+ }
+ }
+
/* (non-Javadoc)
* @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getPropertyWithKey(java.lang.String)
*/
@@ -358,8 +362,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @return an <code>OAAuthParameter</code>, or <code>null</code> if none is applicable
*/
public OAAuthParameter getOnlineApplicationParameter(String oaURL) {
- //TODO: update!!!!!
- OnlineApplication oa = getActiveOnlineApplication(oaURL);
+ Map<String, String> oa = getActiveOnlineApplication(oaURL);
if (oa == null) {
Logger.warn("Online application with identifier " + oaURL + " is not found.");
return null;
@@ -835,7 +838,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
public STORKConfig getStorkConfig() throws ConfigurationException {
STORKConfig result = null;
try {
- Properties storkProps = configuration.getPropertySubset(
+ Map<String, String> storkProps = configuration.getPropertySubset(
MOAIDConfigurationConstants.GENERAL_AUTH_STORK);
if (storkProps == null) {
Logger.warn("Error in MOA-ID Configuration. No STORK configuration found.");
@@ -976,76 +979,31 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
}
/**
- * Returns the default chaining mode or {@code null} if there is no chaining mode defined.
- *
- * @return the default chaining mode or {@code null}
- */
- @Override
- public String getDefaultChainingMode() {
- return "pkix";
- }
-
- /**
- * Returns a list of all {@link OnlineApplication}.
- *
- * @return list of all OnlineApplications
- */
- public List<OnlineApplication> getAllOnlineApplications() {
- Logger.trace("Get all OnlineApplications from database.");
-
- return configuration.getList(MOAIDConfigurationConstants.ONLINE_APPLICATIONS_KEY, OnlineApplication.class);
- }
-
- /**
- * Returns a list of all active {@link OnlineApplication} or {@code null} if no active online application was found.
- *
- * @return list of all active OnlineApplications or {@code null}.
- */
- public List<OnlineApplication> getAllActiveOnlineApplications() {
- Logger.debug("Get all new OnlineApplications from database.");
-
- List<OnlineApplication> result = new ArrayList<OnlineApplication>();
- List<OnlineApplication> allOAs = getAllOnlineApplications();
-
- for (OnlineApplication oa : nullGuard(allOAs)) {
- if (oa.isIsActive()) {
- result.add(oa);
- }
- }
- if (result.size() == 0) {
- Logger.trace("No entries found.");
- return null;
- }
- return result;
- }
-
- /**
* Returns the active {@link OnlineApplication} with the given ID or {@code null} if either no matching online application is found or if the {@code id}
* matches more than one entry.
*
* @param id the id of the requested online application
* @return the requested online application or {@code null}
*/
- public OnlineApplication getActiveOnlineApplication(String id) {
- Logger.trace("Get active OnlineApplication with ID " + id + " from database.");
-
- OnlineApplication result = null;
- List<OnlineApplication> allActiveOAs = getAllActiveOnlineApplications();
-
- for (OnlineApplication oa : nullGuard(allActiveOAs)) {
- String publicUrlPrefix = oa.getPublicURLPrefix();
- if (publicUrlPrefix != null && publicUrlPrefix.length() <= id.length()) {
- if ((id.substring(1, publicUrlPrefix.length()).equals(publicUrlPrefix))) {
- if (result != null) {
- Logger.warn("OAIdentifier matches more than one DB-entry!");
- return null;
- } else {
- result = oa;
- }
- }
+ public Map<String, String> getActiveOnlineApplication(String id) {
+ Logger.trace("Get active OnlineApplication with ID " + id + " from database.");
+ try {
+ Map<String, String> oaConfig = configuration.getOnlineApplication(id);
+ if (oaConfig != null) {
+ String isActiveString = oaConfig.get(MOAIDConfigurationConstants.SERVICE_ISACTIVE);
+ if (isActiveString != null && Boolean.valueOf(isActiveString))
+ return oaConfig;
+
}
- }
- return result;
+
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.error("Error during OnlineApplication load operationen (oaId=."
+ + id + ")" , e);
+
+ }
+ return null;
+
}
//Load document service url from moa properties
@@ -1093,12 +1051,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
return null;
}
- /**
- * @return the eGovUtilsConfig
- */
- @JsonIgnore
- public EgovUtilPropertiesConfiguration geteGovUtilsConfig() {
- return eGovUtilsConfig;
- }
+
+ /* (non-Javadoc)
+ * @see at.gv.egovernment.moa.id.config.auth.AuthConfiguration#getStorkNoSignatureCountries()
+ */
+ @Override
+ public List<String> getStorkNoSignatureCountries() {
+ String prop = properties.getProperty("stork.fakeIdL.noSignatureCountries", "");
+ return Arrays.asList(prop.replaceAll(" ", "").split(","));
+ }
}