aboutsummaryrefslogtreecommitdiff
path: root/id/server
diff options
context:
space:
mode:
Diffstat (limited to 'id/server')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java2
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationUtils.java27
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java16
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterForeign.java5
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMOASP.java5
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMandate.java5
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java461
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java109
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/StorkAttribute.java27
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/MOASAMLSOAPClient.java2
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java6
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfiguration.java13
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java56
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java14
14 files changed, 429 insertions, 319 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
index 1db580530..90e094a03 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
@@ -80,8 +80,6 @@ import at.gv.egovernment.moa.id.auth.validator.parep.ParepUtils;
import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWConstants;
import at.gv.egovernment.moa.id.client.SZRGWClient;
import at.gv.egovernment.moa.id.client.SZRGWClientException;
-import at.gv.egovernment.moa.id.commons.db.dao.config.OAStorkAttribute;
-import at.gv.egovernment.moa.id.commons.db.dao.config.StorkAttribute;
import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
import at.gv.egovernment.moa.id.config.ConfigurationException;
import at.gv.egovernment.moa.id.config.ConnectionParameter;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationUtils.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationUtils.java
index 1a2136ebd..d4cb909d9 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationUtils.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConfigurationUtils.java
@@ -33,23 +33,18 @@ import at.gv.egovernment.moa.util.Base64Utils;
public class ConfigurationUtils {
- public static List<String> getTransformInfos(List<TransformsInfoType> transformations) {
+ public static List<String> getTransformInfos(String transform) {
List<String> list = new ArrayList<String>();
-
- for (TransformsInfoType e1 : transformations) {
-
- try {
- String transform = new String(e1.getTransformation(), "UTF-8");
- String encoded = new String(Base64Utils.decode(transform, false), "UTF-8");
- list.add(encoded);
-
- } catch (UnsupportedEncodingException e) {
- Logger.warn("Transformation can not be loaded. An encoding error ocurs", e);
-
- } catch (IOException e) {
- Logger.warn("Transformation can not be loaded from database.", e);
- }
- }
+ try {
+ String encoded = new String(Base64Utils.decode(transform, false), "UTF-8");
+ list.add(encoded);
+
+ } catch (UnsupportedEncodingException e) {
+ Logger.warn("Transformation can not be loaded. An encoding error ocurs", e);
+
+ } catch (IOException e) {
+ Logger.warn("Transformation can not be loaded from database.", e);
+ }
return list;
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java
index ccf2c5a57..e38a4f360 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameter.java
@@ -24,7 +24,7 @@ package at.gv.egovernment.moa.id.config;
import java.util.Properties;
-import at.gv.egovernment.moa.id.commons.db.dao.config.ConnectionParameterClientAuthType;
+import at.gv.egovernment.moa.util.MiscUtil;
public abstract class ConnectionParameter implements ConnectionParameterInterface{
@@ -32,12 +32,12 @@ public abstract class ConnectionParameter implements ConnectionParameterInterfac
protected static final String PROP_IDENTIFIER_KEYSTOREPASSWORD = "clientKeyStorePassword";
protected static final String PROP_IDENTIFIER_ACCEPEDSERVERCERTS = "acceptedServerCertificates";
- protected ConnectionParameterClientAuthType database;
+ protected String url;
protected Properties prop;
protected String basedirectory;
- public ConnectionParameter(ConnectionParameterClientAuthType database, Properties prop, String basedirectory) {
- this.database = database;
+ public ConnectionParameter(String url, Properties prop, String basedirectory) {
+ this.url = url;
this.prop = prop;
this.basedirectory = basedirectory;
}
@@ -62,16 +62,16 @@ public abstract class ConnectionParameter implements ConnectionParameterInterfac
public boolean isHTTPSURL() {
- if (database==null)
+ if (MiscUtil.isEmpty(url))
return false;
else
- return database.getURL().indexOf("https") == 0;
+ return url.indexOf("https") == 0;
}
public String getUrl() {
- if (database == null)
+ if (MiscUtil.isEmpty(url))
return null;
else
- return database.getURL();
+ return url;
}
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterForeign.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterForeign.java
index a0b787ec5..27d72f515 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterForeign.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterForeign.java
@@ -24,16 +24,15 @@ package at.gv.egovernment.moa.id.config;
import java.util.Properties;
-import at.gv.egovernment.moa.id.commons.db.dao.config.ConnectionParameterClientAuthType;
import at.gv.egovernment.moa.util.MiscUtil;
public class ConnectionParameterForeign extends ConnectionParameter{
private static final String MOASP_PROP_IDENTIFIER_PREFIX = "service.foreignidentities.";
- public ConnectionParameterForeign(ConnectionParameterClientAuthType database,
+ public ConnectionParameterForeign(String url,
Properties prop, String basedirectory) {
- super(database, prop, basedirectory);
+ super(url, prop, basedirectory);
}
public String getAcceptedServerCertificates() {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMOASP.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMOASP.java
index 3ba1ec6c3..a96b8a8ab 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMOASP.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMOASP.java
@@ -24,16 +24,15 @@ package at.gv.egovernment.moa.id.config;
import java.util.Properties;
-import at.gv.egovernment.moa.id.commons.db.dao.config.ConnectionParameterClientAuthType;
import at.gv.egovernment.moa.util.MiscUtil;
public class ConnectionParameterMOASP extends ConnectionParameter{
private static final String MOASP_PROP_IDENTIFIER_PREFIX = "service.moasp.";
- public ConnectionParameterMOASP(ConnectionParameterClientAuthType database,
+ public ConnectionParameterMOASP(String url,
Properties prop, String basedirectory) {
- super(database, prop, basedirectory);
+ super(url, prop, basedirectory);
}
public String getAcceptedServerCertificates() {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMandate.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMandate.java
index f6ca392d1..c25d6826a 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMandate.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/ConnectionParameterMandate.java
@@ -24,16 +24,15 @@ package at.gv.egovernment.moa.id.config;
import java.util.Properties;
-import at.gv.egovernment.moa.id.commons.db.dao.config.ConnectionParameterClientAuthType;
import at.gv.egovernment.moa.util.MiscUtil;
public class ConnectionParameterMandate extends ConnectionParameter{
private static final String MOASP_PROP_IDENTIFIER_PREFIX = "service.onlinemandates.";
- public ConnectionParameterMandate(ConnectionParameterClientAuthType database,
+ public ConnectionParameterMandate(String url,
Properties prop, String basedirectory) {
- super(database, prop, basedirectory);
+ super(url, prop, basedirectory);
}
public String getAcceptedServerCertificates() {
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 378dafa23..2cd14e607 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
@@ -52,6 +52,9 @@ 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.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;
@@ -145,7 +148,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
*/
@Override
public Properties getConfigurationWithPrefix(String Prefix) {
- return configuration.getPropertySubset(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();
+
+ }
}
/* (non-Javadoc)
@@ -325,27 +335,20 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @return the list of protocols.
*/
public List<String> getLegacyAllowedProtocols() {
-
+
+ List<String> legacy = new ArrayList<String>();
try {
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
-
- if (authComponentGeneral.getProtocols() != null) {
- Protocols procols = authComponentGeneral.getProtocols();
- if (procols.getLegacyAllowed() != null) {
- LegacyAllowed legacy = procols.getLegacyAllowed();
- return legacy.getProtocolName();
- }
- }
-
- return new ArrayList<String>();
-
- } catch (NullPointerException e) {
- Logger.info("No protocols found with legacy allowed flag!");
- return new ArrayList<String>();
- } catch (ConfigurationException e) {
- return new ArrayList<String>();
+ if (configuration.getBooleanValue(MOAIDConfigurationConstants.GENERAL_PROTOCOLS_SAML1_LEGACY, false))
+ legacy.add(SAML1Protocol.PATH);
+
+ if (configuration.getBooleanValue(MOAIDConfigurationConstants.GENERAL_PROTOCOLS_PVP2X_LEGACY, false))
+ legacy.add(PVP2XProtocol.PATH);
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Load legacy protocol configuration property FAILED.", e);
+
}
-
+ return legacy;
}
/**
@@ -355,7 +358,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);
if (oa == null) {
Logger.warn("Online application with identifier " + oaURL + " is not found.");
@@ -372,7 +375,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link MOASP}.
*/
public String getMoaSpAuthBlockTrustProfileID() throws ConfigurationException {
- return getVerifyAuthBlock().getTrustProfileID();
+ try {
+ return configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_MOASP_TRUSTPROFILE_AUTHBLOCK_PROD);
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("AuthBlock validation trustprofile can not be read from configuration.", e);
+ return null;
+ }
}
/**
@@ -382,7 +392,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link MOASP}.
*/
public List<String> getMoaSpAuthBlockVerifyTransformsInfoIDs() throws ConfigurationException {
- return getVerifyAuthBlock().getVerifyTransformsInfoProfileID();
+ try {
+ return Arrays.asList(configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_MOASP_AUTHBLOCK_TRANSFORM));
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("AuthBlock transformation can not be read from configuration.", e);
+ return null;
+ }
}
/**
@@ -393,14 +410,21 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
*/
public ConnectionParameter getMoaSpConnectionParameter() throws ConfigurationException {
ConnectionParameter result = null;
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- MOASP moasp = authComponentGeneral.getMOASP();
- if (moasp != null) {
- ConnectionParameterClientAuthType connectionParameter = moasp.getConnectionParameter();
- if (connectionParameter != null) {
- result = new ConnectionParameterMOASP(moasp.getConnectionParameter(), this.getProperties(), this.getRootConfigFileDir());
+ String moaspURL;
+ try {
+ moaspURL = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_MOASP_URL);
+ if (moaspURL != null) {
+ result =
+ new ConnectionParameterMOASP(moaspURL, this.getProperties(), this.getRootConfigFileDir());
+
}
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Loading MOA-SP Service URL from configuration FAILED.", e);
+
}
+
return result;
}
@@ -411,15 +435,23 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral}.
*/
public ConnectionParameter getForeignIDConnectionParameter() throws ConfigurationException {
-
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- ForeignIdentities foreign = authComponentGeneral.getForeignIdentities();
- if (foreign != null) {
- return new ConnectionParameterForeign(foreign.getConnectionParameter(), this.getProperties(), this.getRootConfigFileDir());
- } else {
- Logger.warn("Error in MOA-ID Configuration. No Connectionconfiguration to SZRGW Service found");
- return null;
+ ConnectionParameter result = null;
+ String serviceURL;
+ try {
+ serviceURL = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_SZRGW_URL);
+ if (serviceURL != null) {
+ result =
+ new ConnectionParameterForeign(serviceURL, this.getProperties(), this.getRootConfigFileDir());
+
+ }
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Loading SZRGW Service URL from configuration FAILED.", e);
+
}
+
+ return result;
}
/**
@@ -429,13 +461,23 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral}
*/
public ConnectionParameter getOnlineMandatesConnectionParameter() throws ConfigurationException {
-
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- OnlineMandates ovs = authComponentGeneral.getOnlineMandates();
- if (ovs != null) {
- return new ConnectionParameterMandate(ovs.getConnectionParameter(), this.getProperties(), this.getRootConfigFileDir());
+ ConnectionParameter result = null;
+ String serviceURL;
+ try {
+ serviceURL = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_OVS_URL);
+ if (serviceURL != null) {
+ result =
+ new ConnectionParameterMandate(serviceURL, this.getProperties(), this.getRootConfigFileDir());
+
+ }
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Loading SZRGW Service URL from configuration FAILED.", e);
+
}
- return null;
+
+ return result;
}
/**
@@ -445,20 +487,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link VerifyIdentityLink}.
*/
public String getMoaSpIdentityLinkTrustProfileID() throws ConfigurationException {
-
- String result = null;
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- MOASP moasp = authComponentGeneral.getMOASP();
- if (moasp != null) {
- VerifyIdentityLink verifyIdentityLink = moasp.getVerifyIdentityLink();
- if (verifyIdentityLink != null) {
- result = verifyIdentityLink.getTrustProfileID();
- } else {
- Logger.warn("Error in MOA-ID Configuration. No Trustprofile for IdentityLink validation.");
- throw new ConfigurationException("config.02", null);
- }
+ try {
+ return configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_MOASP_TRUSTPROFILE_IDL_PROD);
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("IdentityLink validation trustprofile can not be read from configuration.", e);
+ return null;
}
- return result;
}
/**
@@ -468,22 +504,27 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link SecurityLayer}.
*/
public List<String> getTransformsInfos() throws ConfigurationException {
+ try {
+ String securityLayer = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_AUTHBLOCK_TRANSFORMATION_BASE64);
+ if (securityLayer != null) {
+ List<String> result = ConfigurationUtils.getTransformInfos(securityLayer);
+
+ if (result == null || result.isEmpty()) {
+ Logger.error("No Security-Layer Transformation found.");
+ throw new ConfigurationException("config.05", new Object[] { "Security-Layer Transformation" });
+ }
+ return result;
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- SecurityLayer securityLayer = authComponentGeneral.getSecurityLayer();
- if (securityLayer != null) {
-
- List<String> result = ConfigurationUtils.getTransformInfos(securityLayer.getTransformsInfo());
-
- if (result == null || result.isEmpty()) {
- Logger.error("No Security-Layer Transformation found.");
- throw new ConfigurationException("config.05", new Object[] { "Security-Layer Transformation" });
+ } else {
+ Logger.warn("Error in MOA-ID Configuration. No generalAuthConfiguration->SecurityLayer found");
+ throw new ConfigurationException("config.02", null);
}
- return result;
-
- } else {
- Logger.warn("Error in MOA-ID Configuration. No generalAuthConfiguration->SecurityLayer found");
- throw new ConfigurationException("config.02", null);
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.error("No Security-Layer Transformation found.");
+ throw new ConfigurationException("config.05", new Object[] { "Security-Layer Transformation" });
+
}
}
@@ -498,14 +539,6 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
ArrayList<String> identityLinkX509SubjectNames = new ArrayList<String>();
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
-
- IdentityLinkSigners idlsigners = authComponentGeneral.getIdentityLinkSigners();
- if (idlsigners != null) {
- Logger.debug("Load own IdentityLinkX509SubjectNames");
- identityLinkX509SubjectNames.addAll(new ArrayList<String>(idlsigners.getX509SubjectName()));
- }
-
String[] identityLinkSignersWithoutOID = MOAIDAuthConstants.IDENTITY_LINK_SIGNERS_WITHOUT_OID;
for (int i = 0; i < identityLinkSignersWithoutOID.length; i++) {
String identityLinkSigner = identityLinkSignersWithoutOID[i];
@@ -524,14 +557,19 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is never thrown
*/
public List<String> getSLRequestTemplates() throws ConfigurationException {
-
- SLRequestTemplates templates = configuration.get(MOAIDConfigurationConstants.SLREQUEST_TEMPLATES_KEY, SLRequestTemplates.class);
List<String> templatesList = new ArrayList<String>();
- if (templates != null) {
- templatesList.add(templates.getOnlineBKU());
- templatesList.add(templates.getLocalBKU());
- templatesList.add(templates.getHandyBKU());
+ try {
+ templatesList.add(configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_TEMPLATES_LOCAL));
+ templatesList.add(configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_TEMPLATES_ONLINE));
+ templatesList.add(configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_TEMPLATES_HANDY));
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("SecurtiyLayer request templates are not loadable from configuration.", e);
+
}
return templatesList;
}
@@ -545,25 +583,30 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is never thrown
*/
public String getSLRequestTemplates(String type) throws ConfigurationException {
-
- SLRequestTemplates templates = configuration.get(MOAIDConfigurationConstants.SLREQUEST_TEMPLATES_KEY, SLRequestTemplates.class);
String slRequestTemplate = null;
- if (templates != null) {
+ try {
switch (type) {
case IOAAuthParameters.ONLINEBKU:
- slRequestTemplate = templates.getOnlineBKU();
+ slRequestTemplate = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_TEMPLATES_ONLINE);
break;
case IOAAuthParameters.LOCALBKU:
- slRequestTemplate = templates.getLocalBKU();
+ slRequestTemplate = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_TEMPLATES_LOCAL);
break;
case IOAAuthParameters.HANDYBKU:
- slRequestTemplate = templates.getHandyBKU();
+ slRequestTemplate = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_TEMPLATES_HANDY);
break;
default:
Logger.warn("getSLRequestTemplates: BKU Type does not match: " + IOAAuthParameters.ONLINEBKU + " or " + IOAAuthParameters.HANDYBKU + " or "
+ IOAAuthParameters.LOCALBKU);
}
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("SecurtiyLayer request templates are not loadable from configuration.", e);
+
}
return slRequestTemplate;
}
@@ -575,14 +618,18 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is never thrown
*/
public List<String> getDefaultBKUURLs() throws ConfigurationException {
-
- DefaultBKUs bkuurls = configuration.get(MOAIDConfigurationConstants.DEFAULT_BKUS_KEY, DefaultBKUs.class);
List<String> bkuurlsList = new ArrayList<String>();
-
- if (bkuurls != null) {
- bkuurlsList.add(bkuurls.getOnlineBKU());
- bkuurlsList.add(bkuurls.getLocalBKU());
- bkuurlsList.add(bkuurls.getHandyBKU());
+ try {
+ bkuurlsList.add(configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_BKU_ONLINE));
+ bkuurlsList.add(configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_BKU_LOCAL));
+ bkuurlsList.add(configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_BKU_HANDY));
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("BKU URLs are not loadable from configuration.", e);
+
}
return bkuurlsList;
}
@@ -596,25 +643,29 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is never thrown
*/
public String getDefaultBKUURL(String type) throws ConfigurationException {
-
- DefaultBKUs bkuurls = configuration.get(MOAIDConfigurationConstants.DEFAULT_BKUS_KEY, DefaultBKUs.class);
String defaultBKUUrl = null;
-
- if (bkuurls != null) {
+ try {
switch (type) {
case IOAAuthParameters.ONLINEBKU:
- defaultBKUUrl = bkuurls.getOnlineBKU();
+ defaultBKUUrl = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_BKU_ONLINE);
break;
case IOAAuthParameters.LOCALBKU:
- defaultBKUUrl = bkuurls.getLocalBKU();
+ defaultBKUUrl = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_BKU_LOCAL);
break;
case IOAAuthParameters.HANDYBKU:
- defaultBKUUrl = bkuurls.getHandyBKU();
+ defaultBKUUrl = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_DEFAULTS_BKU_HANDY);
break;
default:
Logger.warn("getDefaultBKUURL: BKU Type does not match: " + IOAAuthParameters.ONLINEBKU + " or " + IOAAuthParameters.HANDYBKU + " or "
+ IOAAuthParameters.LOCALBKU);
}
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("BKU URLs are not loadable from configuration.", e);
+
}
return defaultBKUUrl;
}
@@ -626,14 +677,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral}
*/
public String getSSOTagetIdentifier() throws ConfigurationException {
-
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
-
- SSO sso = authComponentGeneral.getSSO();
- if (sso != null) {
- return sso.getTarget();
+ try {
+ return configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SSO_TARGET);
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Single Sign-On Target can not be read from configuration.", e);
+ return null;
}
- return null;
}
/**
@@ -642,22 +693,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @return the SSOFriendlyName or a default String
*/
public String getSSOFriendlyName() {
-
- AuthComponentGeneral authComponentGeneral;
- String defaultValue = "Default MOA-ID friendly name for SSO";
try {
- authComponentGeneral = getAuthComponentGeneral();
- } catch (ConfigurationException e) {
- return defaultValue;
- }
-
- SSO sso = authComponentGeneral.getSSO();
- if (sso != null) {
- if (MiscUtil.isEmpty(sso.getFriendlyName())) {
- return sso.getFriendlyName();
- }
+ return configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SSO_TARGET, "Default MOA-ID friendly name for SSO");
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Single Sign-On FriendlyName can not be read from configuration.", e);
+ return "Default MOA-ID friendly name for SSO";
}
- return defaultValue;
}
/**
@@ -666,20 +709,15 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @return the SSOSpecialText or an empty String
*/
public String getSSOSpecialText() {
-
- AuthComponentGeneral authComponentGeneral;
try {
- authComponentGeneral = getAuthComponentGeneral();
- } catch (ConfigurationException e) {
- return new String();
- }
-
- SSO sso = authComponentGeneral.getSSO();
- if (sso != null) {
- String text = sso.getSpecialText();
+ String text = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_SSO_AUTHBLOCK_TEXT);
return MiscUtil.isEmpty(text) ? new String() : text;
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Single Sign-On AuthBlockText can not be read from configuration.", e);
+ return new String();
}
- return new String();
}
/**
@@ -762,22 +800,14 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @return the PublicURLPrefix or {@code null}
*/
public String getPublicURLPrefix() {
-
- AuthComponentGeneral authComponentGeneral;
try {
- authComponentGeneral = getAuthComponentGeneral();
- } catch (ConfigurationException e) {
+ return configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_PUBLICURLPREFIX);
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("MOA-ID PublicURLPrefix can not be read from configuration.", e);
return null;
}
-
- String publicURLPreFix = null;
- GeneralConfiguration generalConfiguration = authComponentGeneral.getGeneralConfiguration();
- if (generalConfiguration != null && MiscUtil.isNotEmpty(generalConfiguration.getPublicURLPreFix())) {
- publicURLPreFix = generalConfiguration.getPublicURLPreFix();
- } else {
- Logger.warn("Error in MOA-ID Configuration. No GeneralConfig defined.");
- }
- return publicURLPreFix;
}
/**
@@ -803,15 +833,22 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
* @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral}
*/
public STORKConfig getStorkConfig() throws ConfigurationException {
-
STORKConfig result = null;
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- ForeignIdentities foreign = authComponentGeneral.getForeignIdentities();
- if (foreign == null) {
- Logger.warn("Error in MOA-ID Configuration. No STORK configuration found.");
- } else {
- result = new STORKConfig(foreign.getSTORK(), this.getProperties(), this.getRootConfigFileDir());
+ try {
+ Properties storkProps = configuration.getPropertySubset(
+ MOAIDConfigurationConstants.GENERAL_AUTH_STORK);
+ if (storkProps == null) {
+ Logger.warn("Error in MOA-ID Configuration. No STORK configuration found.");
+
+ } else {
+ result = new STORKConfig(this.getProperties(), this.getRootConfigFileDir());
+
+ }
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("MOA-ID PublicURLPrefix can not be read from configuration.", e);
+
}
+
return result;
}
@@ -831,32 +868,32 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
// return authComponentGeneral;
// }
- /**
- * Returns the {@link VerifyAuthBlock}.
- *
- * @return the {@link VerifyAuthBlock}.
- * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link MOASP}.
- */
- private VerifyAuthBlock getVerifyAuthBlock() throws ConfigurationException {
-
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- MOASP moasp = authComponentGeneral.getMOASP();
- if (moasp != null) {
- VerifyAuthBlock vab = moasp.getVerifyAuthBlock();
- if (vab != null) {
- VerifyAuthBlock verifyIdl = new VerifyAuthBlock();
- verifyIdl.setTrustProfileID(vab.getTrustProfileID());
- verifyIdl.setVerifyTransformsInfoProfileID(new ArrayList<String>(vab.getVerifyTransformsInfoProfileID()));
- return verifyIdl;
- } else {
- Logger.warn("Error in MOA-ID Configuration. No Trustprofile for AuthBlock validation.");
- throw new ConfigurationException("config.02", null);
- }
- } else {
- Logger.warn("Error in MOA-ID Configuration. No MOASP configuration found");
- throw new ConfigurationException("config.02", null);
- }
- }
+// /**
+// * Returns the {@link VerifyAuthBlock}.
+// *
+// * @return the {@link VerifyAuthBlock}.
+// * @throws ConfigurationException is thrown in case of missing {@link AuthComponentGeneral} or in case of missing {@link MOASP}.
+// */
+// private VerifyAuthBlock getVerifyAuthBlock() throws ConfigurationException {
+//
+// AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
+// MOASP moasp = authComponentGeneral.getMOASP();
+// if (moasp != null) {
+// VerifyAuthBlock vab = moasp.getVerifyAuthBlock();
+// if (vab != null) {
+// VerifyAuthBlock verifyIdl = new VerifyAuthBlock();
+// verifyIdl.setTrustProfileID(vab.getTrustProfileID());
+// verifyIdl.setVerifyTransformsInfoProfileID(new ArrayList<String>(vab.getVerifyTransformsInfoProfileID()));
+// return verifyIdl;
+// } else {
+// Logger.warn("Error in MOA-ID Configuration. No Trustprofile for AuthBlock validation.");
+// throw new ConfigurationException("config.02", null);
+// }
+// } else {
+// Logger.warn("Error in MOA-ID Configuration. No MOASP configuration found");
+// throw new ConfigurationException("config.02", null);
+// }
+// }
/**
* Small helper method. NOTE: may return empty properties, but never {@code null}.
@@ -884,19 +921,11 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
public boolean isTrustmanagerrevoationchecking() {
try {
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- GeneralConfiguration generalConfiguration = authComponentGeneral.getGeneralConfiguration();
- if (generalConfiguration != null && generalConfiguration.isTrustManagerRevocationChecking() != null) {
+ return configuration.getBooleanValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_REVOCATIONCHECKING,
+ TRUST_MANAGER_REVOCATION_CHECKING_DEFAULT);
- return generalConfiguration.isTrustManagerRevocationChecking();
-
- } else {
- Logger.warn("No TrustMangerRevoationChecking defined. Use default value = "
- + String.valueOf(TRUST_MANAGER_REVOCATION_CHECKING_DEFAULT).toUpperCase());
- return TRUST_MANAGER_REVOCATION_CHECKING_DEFAULT;
- }
-
- } catch (ConfigurationException e) {
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
return TRUST_MANAGER_REVOCATION_CHECKING_DEFAULT;
}
}
@@ -908,25 +937,42 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
*/
@Override
public String getCertstoreDirectory() {
-
try {
- AuthComponentGeneral authComponentGeneral = getAuthComponentGeneral();
- GeneralConfiguration generalConfiguration = authComponentGeneral.getGeneralConfiguration();
- if (generalConfiguration != null) {
- return (rootConfigFileDir + generalConfiguration.getCertStoreDirectory());
- } else {
+ String path = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_CERTSTORE_URL);
+ if (MiscUtil.isNotEmpty(path))
+ return path;
+
+ else {
Logger.warn("Error in MOA-ID Configuration. No CertStoreDirectory defined.");
return null;
+
}
-
- } catch (ConfigurationException e) {
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Error in MOA-ID Configuration. No CertStoreDirectory defined.", e);
return null;
}
}
@Override
public String getTrustedCACertificates() {
- return (String) configuration.get(MOAIDConfigurationConstants.TRUSTED_CERTIFICATES_KEY, String.class);
+ try {
+ String path = configuration.getStringValue(
+ MOAIDConfigurationConstants.GENERAL_AUTH_TRUSTSTORE_URL);
+ if (MiscUtil.isNotEmpty(path))
+ return path;
+
+ else {
+ Logger.warn("Error in MOA-ID Configuration. No TrustStoreDirectory defined.");
+ return null;
+
+ }
+
+ } catch (at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ Logger.warn("Error in MOA-ID Configuration. No TrustStoreDirectory defined.", e);
+ return null;
+ }
}
/**
@@ -936,14 +982,7 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide
*/
@Override
public String getDefaultChainingMode() {
-
- ChainingModes chainingModes = (ChainingModes) configuration.get(MOAIDConfigurationConstants.CHAINING_MODES_KEY, ChainingModes.class);
- if (chainingModes != null) {
- return chainingModes.getSystemDefaultMode().value();
- }
-
- Logger.warn("Error in MOA-ID Configuration. No ChainingMode configuration found.");
- return null;
+ return "pkix";
}
/**
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java
index 136b40295..81caa13ee 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java
@@ -25,7 +25,6 @@
*/
package at.gv.egovernment.moa.id.config.stork;
-import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -33,16 +32,13 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
-import at.gv.egovernment.moa.id.commons.db.dao.config.SAMLSigningParameter;
-import at.gv.egovernment.moa.id.commons.db.dao.config.STORK;
-import at.gv.egovernment.moa.id.commons.db.dao.config.StorkAttribute;
+import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
+import at.gv.egovernment.moa.id.config.ConfigurationException;
+import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.StringUtils;
-import org.opensaml.ws.message.encoder.MessageEncodingException;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.ParserConfigurationException;
/**
* Encapsulates several STORK configuration parameters according MOA configuration
@@ -60,57 +56,62 @@ public class STORKConfig {
private List<StorkAttribute> attr = null;
- public STORKConfig(STORK stork, Properties props, String basedirectory) {
+ public STORKConfig(Properties props, String basedirectory) throws ConfigurationException {
this.basedirectory = basedirectory;
this.props = props;
//create CPEPS map
- //List<at.gv.egovernment.moa.id.commons.db.dao.config.CPEPS> cpeps = stork.getCPEPS();
- List<at.gv.egovernment.moa.id.commons.db.dao.config.CPEPS> cpeps = new ArrayList<at.gv.egovernment.moa.id.commons.db.dao.config.CPEPS>(); // TODO Change this
-
- try {
- cpeps = stork.getCPEPS();
-
- } catch (NullPointerException ex) {
- Logger.error("CPEPS not configured!");
+ List<CPEPS> cpeps = new ArrayList<CPEPS>();
+
+ Properties storkCPEPSProps =
+ AuthConfigurationProviderFactory.getInstance().getConfigurationWithPrefix(
+ MOAIDConfigurationConstants.GENERAL_AUTH_STORK_CPEPS_LIST);
+ if (storkCPEPSProps != null) {
+ Set<Object> keyValues = storkCPEPSProps.keySet();
+ for (Object elObj : keyValues) {
+ if (elObj instanceof String) {
+ String el = (String) elObj;
+ if (el.endsWith(MOAIDConfigurationConstants.GENERAL_AUTH_STORK_CPEPS_LIST_COUNTRY)) {
+ int index = el.indexOf(".");
+ String listCounter = el.substring(0, index);
+ try {
+ CPEPS moacpep =
+ new CPEPS(storkCPEPSProps.getProperty(listCounter + "." + MOAIDConfigurationConstants.GENERAL_AUTH_STORK_CPEPS_LIST_COUNTRY),
+ new URL(storkCPEPSProps.getProperty(listCounter + "." + MOAIDConfigurationConstants.GENERAL_AUTH_STORK_CPEPS_LIST_URL)),
+ Boolean.valueOf(storkCPEPSProps.getProperty(listCounter + "." + MOAIDConfigurationConstants.GENERAL_AUTH_STORK_CPEPS_LIST_SUPPORT_XMLDSIG)));
+ cpepsMap.put(moacpep.getCountryCode(), moacpep);
+
+ } catch (MalformedURLException e) {
+ Logger.warn("CPEPS URL " +
+ storkCPEPSProps.getProperty(listCounter + "." + MOAIDConfigurationConstants.GENERAL_AUTH_STORK_CPEPS_LIST_URL) +
+ " are not parseable.", e);
+
+ }
+ }
+ }
+ }
+ }
+
+ attr = new ArrayList<StorkAttribute>();
+ Properties storkAttributeProps =
+ AuthConfigurationProviderFactory.getInstance().getConfigurationWithPrefix(
+ MOAIDConfigurationConstants.GENERAL_AUTH_STORK_ATTRIBUTES_LIST);
+ if (storkAttributeProps != null) {
+ Set<Object> keyValues = storkAttributeProps.keySet();
+ for (Object elObj : keyValues) {
+ if (elObj instanceof String) {
+ String el = (String) elObj;
+ if (el.endsWith(MOAIDConfigurationConstants.GENERAL_AUTH_STORK_ATTRIBUTES_LIST_NAME)) {
+ int index = el.indexOf(".");
+ String listCounter = el.substring(0, index);
+ StorkAttribute moaStorkAttr =
+ new StorkAttribute(storkAttributeProps.getProperty(listCounter + "." + MOAIDConfigurationConstants.GENERAL_AUTH_STORK_ATTRIBUTES_LIST_NAME),
+ Boolean.valueOf(storkAttributeProps.getProperty(listCounter + "." + MOAIDConfigurationConstants.GENERAL_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY)));
+ attr.add(moaStorkAttr);
+ }
+ }
+ }
}
-
- cpepsMap = new HashMap<String, CPEPS>();
-
- if (cpeps != null) {
- for(at.gv.egovernment.moa.id.commons.db.dao.config.CPEPS cpep : cpeps) {
-
- try {
- CPEPS moacpep = new CPEPS(cpep.getCountryCode(), new URL(cpep.getURL()), cpep.isSupportsXMLSignature());
-
- cpepsMap.put(cpep.getCountryCode(), moacpep);
-
- } catch (MalformedURLException e) {
- Logger.warn("Error in MOA-ID Configuration. CPEP entry for country "
- + cpep.getCountryCode() + " has an invalid URL and is ignored.");
- }
- }
- /*catch (ParserConfigurationException e) {
- Logger.warn("Error in MOA-ID Configuration. CPEP entry for country "
- + cpep.getCountryCode() + " has an invalid Attribute and is ignored.");
- } catch (SAXException e) {
- Logger.warn("Error in MOA-ID Configuration. CPEP entry for country "
- + cpep.getCountryCode() + " has an invalid Attribute and is ignored.");
- } catch (IOException e) {
- Logger.warn("Error in MOA-ID Configuration. CPEP entry for country "
- + cpep.getCountryCode() + " has an invalid Attribute and is ignored.");
- } catch (MessageEncodingException e) {
- Logger.warn("Error in MOA-ID Configuration. CPEP entry for country "
- + cpep.getCountryCode() + " has an invalid Attribute and is ignored.");
- }*/
- }
- attr = new ArrayList<StorkAttribute>();
- if (stork != null && stork.getAttributes() != null) {
- for(StorkAttribute current : stork.getAttributes()) {
- attr.add(current);
- }
- }
-
}
public SignatureCreationParameter getSignatureCreationParameter() {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/StorkAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/StorkAttribute.java
new file mode 100644
index 000000000..87ec7fb0c
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/StorkAttribute.java
@@ -0,0 +1,27 @@
+package at.gv.egovernment.moa.id.config.stork;
+
+public class StorkAttribute {
+
+ protected Boolean mandatory;
+ protected String name;
+
+ public StorkAttribute(String name, boolean mandatory) {
+ this.name = name;
+ this.mandatory = mandatory;
+ }
+
+ public Boolean getMandatory() {
+ return mandatory;
+ }
+ public void setMandatory(Boolean mandatory) {
+ this.mandatory = mandatory;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/MOASAMLSOAPClient.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/MOASAMLSOAPClient.java
index 5dad3771d..2915ff683 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/MOASAMLSOAPClient.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/MOASAMLSOAPClient.java
@@ -68,7 +68,7 @@ public class MOASAMLSOAPClient {
AuthConfigurationProviderFactory.getInstance().getCertstoreDirectory(),
AuthConfigurationProviderFactory.getInstance().getTrustedCACertificates(),
null,
- ChainingModeType.fromValue(AuthConfigurationProviderFactory.getInstance().getDefaultChainingMode()),
+ AuthConfigurationProviderFactory.getInstance().getDefaultChainingMode(),
AuthConfigurationProviderFactory.getInstance().isTrustmanagerrevoationchecking());
clientBuilder.setHttpsProtocolSocketFactory(sslprotocolsocketfactory );
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java
index 71c95c1e6..6799fcb13 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/MOAIDConfigurationConstants.java
@@ -206,13 +206,13 @@ public final class MOAIDConfigurationConstants {
public static final String GENERAL_AUTH_AUTHBLOCK_TRANSFORMATION_BASE64 = GENERAL_AUTH + ".authblock.transformation.base64";
public static final String GENERAL_AUTH_STORK = GENERAL_AUTH + "." + STORK;
- public static final String GENERAL_AUTH_STORK_QAA = GENERAL_AUTH + "." + STORK + ".qaa";
- public static final String GENERAL_AUTH_STORK_CPEPS_LIST = GENERAL_AUTH + "." + STORK + ".cpeps";
+ public static final String GENERAL_AUTH_STORK_QAA = GENERAL_AUTH_STORK + ".qaa";
+ public static final String GENERAL_AUTH_STORK_CPEPS_LIST = GENERAL_AUTH_STORK + ".cpeps";
public static final String GENERAL_AUTH_STORK_CPEPS_LIST_COUNTRY = "countrycode";
public static final String GENERAL_AUTH_STORK_CPEPS_LIST_URL = "url";
public static final String GENERAL_AUTH_STORK_CPEPS_LIST_SUPPORT_XMLDSIG = "support.xmldsig";
- public static final String GENERAL_AUTH_STORK_ATTRIBUTES_LIST = GENERAL_AUTH + "." + STORK + ".attributes";
+ public static final String GENERAL_AUTH_STORK_ATTRIBUTES_LIST = GENERAL_AUTH_STORK + ".attributes";
public static final String GENERAL_AUTH_STORK_ATTRIBUTES_LIST_NAME = "friendlyname";
public static final String GENERAL_AUTH_STORK_ATTRIBUTES_LIST_MANDATORY = "mandatory";
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfiguration.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfiguration.java
index 026a907d7..159b587df 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfiguration.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfiguration.java
@@ -3,6 +3,7 @@ package at.gv.egovernment.moa.id.commons.config.persistence;
import java.util.Properties;
import at.gv.egiz.components.configuration.api.Configuration;
+import at.gv.egiz.components.configuration.api.ConfigurationException;
/**
* An interface for a key-value configuration.
@@ -15,8 +16,18 @@ public interface MOAIDConfiguration extends Configuration {
* @param preFix A key prefix
* @return All key/value pairs with this prefix. The prefix is removed from the key.
*
+ **/
+ public Properties getPropertySubset(String preFix) throws ConfigurationException;
+
+
+ /**
+ * Load an OnlineApplication configuration and remove the OA key prefix
+ *
+ * @param publicURLPrefix: Unique identifier of online application
+ * @return Properties of the online application or null if no OA is found
+ * @throws ConfigurationException in case of an configuration access error
*/
- Properties getPropertySubset(final String preFix);
+ public Properties getOnlineApplication(String publicURLPrefix) throws ConfigurationException;
// /**
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java
index 442ff6247..2d652d748 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/persistence/MOAIDConfigurationImpl.java
@@ -1,28 +1,28 @@
package at.gv.egovernment.moa.id.commons.config.persistence;
-import java.util.Arrays;
import java.util.List;
import java.util.Properties;
-import javax.persistence.EntityExistsException;
+import javax.persistence.EntityManager;
+import javax.persistence.TypedQuery;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.stereotype.Component;
import at.gv.egiz.components.configuration.api.Configuration;
+import at.gv.egiz.components.configuration.api.ConfigurationException;
+import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
+import at.gv.egovernment.moa.id.commons.db.dao.config.ConfigProperty;
import at.gv.egovernment.moa.id.commons.db.dao.config.ConfigPropertyDaoImpl;
+import at.gv.egovernment.moa.logging.Logger;
/**
* The implementation of a key-value configuration implementing the {@link Configuration} interface.
* It employs the {@link ConfigPropertyDao} to persist configuration data.
*/
@Component
-public class MOAIDConfigurationImpl extends ConfigPropertyDaoImpl implements MOAIDConfiguration {
-
- private final Logger log = LoggerFactory.getLogger(getClass());
-
+public class MOAIDConfigurationImpl extends ConfigPropertyDaoImpl implements MOAIDConfiguration {
+
Configuration configPropertyDao;
// private JsonMapper mapper = new JsonMapper();
@@ -39,13 +39,47 @@ public class MOAIDConfigurationImpl extends ConfigPropertyDaoImpl implements MOA
/* (non-Javadoc)
* @see at.gv.egovernment.moa.id.commons.config.persistence.MOAIDConfiguration#getPropertySubset(java.lang.String)
*/
- @Override
- public Properties getPropertySubset(String preFix) {
+ public Properties getPropertySubset(String preFix) throws ConfigurationException{
// TODO Auto-generated method stub
return null;
}
-
+ @Override
+ public Properties getOnlineApplication(String publicURLPrefix)
+ throws ConfigurationException {
+ EntityManager em = this.getPersistenceContext();
+ if (null == em) {
+ Logger.error("No EntityManager set!");
+ throw new ConfigurationException("No EntityManager set!");
+
+ }
+
+ String keyId = MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES
+ + ".%."
+ + MOAIDConfigurationConstants.SERVICE_UNIQUEIDENTIFIER;
+ TypedQuery<ConfigProperty> query = em.createQuery("select * from ConfigProperty dbconfig where dbconfig.key like :key and dbconfig.value = SUBSTRING(:uniqueID, 1, LENGTH(dbconfig.value))", ConfigProperty.class);
+ query.setParameter("key", keyId);
+ query.setParameter("uniqueID", publicURLPrefix);
+ List<ConfigProperty> result = query.getResultList();
+
+ if (result.size() == 0) {
+ Logger.debug("No entries found.");
+ return null;
+ }
+
+ if (result.size() > 1) {
+ Logger.warn("OAIdentifier match to more then one DB-entry!");
+ return null;
+ }
+
+ String oaKey = result.get(0).getKey();
+ String oaValue = result.get(0).getValue();
+ Logger.trace("Find online application with uniqueID: " + oaValue + " and keyID: " + oaKey);
+
+
+
+ return null;
+ }
/**
* Small helper method. NOTE: may return empty properties, but never {@code null}.
* @param propPrefix the prefix of the desired property.
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java
index 24195b0cf..eaeb4e7f7 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java
@@ -26,7 +26,14 @@ public class ConfigPropertyDaoImpl extends AbstractConfigurationImpl {
@PersistenceContext(unitName = "moaidconf")
private EntityManager em;
-
+ /**
+ *
+ * @return EntityManager for database access
+ */
+ protected EntityManager getPersistenceContext() {
+ return em;
+ }
+
@Override
protected List<String> getAllKeys() {
if (null == em) {
@@ -103,7 +110,7 @@ public class ConfigPropertyDaoImpl extends AbstractConfigurationImpl {
return null;
}
- TypedQuery<String> query = em.createQuery("select * from ConfigProperty dbconfig where dbconfig.key like :key", String.class);
+ TypedQuery<String> query = em.createQuery("select key from ConfigProperty dbconfig where dbconfig.key like :key", String.class);
query.setParameter("key", searchString.replace("*", "%"));
List<String> result = query.getResultList();
return result.toArray(new String[result.size()]);
@@ -120,7 +127,7 @@ public class ConfigPropertyDaoImpl extends AbstractConfigurationImpl {
return null;
}
- TypedQuery<String> query = em.createQuery("select * from ConfigProperty dbconfig where dbconfig.value like :value", String.class);
+ TypedQuery<String> query = em.createQuery("select key from ConfigProperty dbconfig where dbconfig.value like :value", String.class);
query.setParameter("value", searchString.replace("*", "%"));
List<String> result = query.getResultList();
return result.toArray(new String[result.size()]);
@@ -156,6 +163,7 @@ public class ConfigPropertyDaoImpl extends AbstractConfigurationImpl {
}
+
// @Override
// public String getPropertyValue(String key) {
// ConfigProperty property = getProperty(key);