aboutsummaryrefslogtreecommitdiff
path: root/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2016-08-02 14:48:56 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2016-08-02 14:48:56 +0200
commita9b9c5177217de2f99298a416a25f912944d6383 (patch)
tree6556dec0479e3eb21b23eebb3b06a704c4bd4162 /id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java
parentd63a3e5b0ae43808cddd89d62f57868278eb50eb (diff)
downloadmoa-id-spss-a9b9c5177217de2f99298a416a25f912944d6383.tar.gz
moa-id-spss-a9b9c5177217de2f99298a416a25f912944d6383.tar.bz2
moa-id-spss-a9b9c5177217de2f99298a416a25f912944d6383.zip
First untested version of refactor eIDAS module, which uses eIDAS SAMLEngine v1.1 from JoinUp
Diffstat (limited to 'id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java')
-rw-r--r--id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java91
1 files changed, 73 insertions, 18 deletions
diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java
index 68640caf7..cdae92e58 100644
--- a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java
+++ b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/utils/SAMLEngineUtils.java
@@ -22,15 +22,22 @@
*/
package at.gv.egovernment.moa.id.auth.modules.eidas.utils;
+import java.util.HashMap;
+import java.util.Map;
+
import at.gv.egovernment.moa.id.auth.modules.eidas.Constants;
import at.gv.egovernment.moa.id.auth.modules.eidas.config.MOAIDCertificateManagerConfigurationImpl;
+import at.gv.egovernment.moa.id.auth.modules.eidas.config.MOASWSigner;
import at.gv.egovernment.moa.id.auth.modules.eidas.engine.MOAeIDASChainingMetadataProvider;
import at.gv.egovernment.moa.id.auth.modules.eidas.engine.MOAeIDASMetadataProviderDecorator;
-import at.gv.egovernment.moa.id.auth.modules.eidas.engine.MOAeIDAsExtensionProcessor;
import at.gv.egovernment.moa.id.auth.modules.eidas.exceptions.EIDASEngineException;
import at.gv.egovernment.moa.logging.Logger;
-import eu.eidas.auth.engine.EIDASSAMLEngine;
-import eu.eidas.auth.engine.core.ExtensionProcessorI;
+import eu.eidas.auth.commons.attribute.AttributeDefinition;
+import eu.eidas.auth.engine.ProtocolEngineI;
+import eu.eidas.auth.engine.SamlEngineSystemClock;
+import eu.eidas.auth.engine.core.eidas.EidasProtocolProcessor;
+import eu.eidas.auth.engine.metadata.MetadataFetcherI;
+import eu.eidas.auth.engine.metadata.MetadataSignerI;
import eu.eidas.engine.exceptions.EIDASSAMLEngineException;
import eu.eidas.samlengineconfig.CertificateConfigurationManager;
@@ -40,28 +47,36 @@ import eu.eidas.samlengineconfig.CertificateConfigurationManager;
*/
public class SAMLEngineUtils {
- private static EIDASSAMLEngine eIDASEngine = null;
+ private static ProtocolEngineI eIDASEngine = null;
+ private static MetadataSignerI metadataSigner = null;
+ private static MetadataFetcherI metadataFetcher = null;
+ private static Map<String, AttributeDefinition<?>> allSupportedAttributeMap =
+ new HashMap<String, AttributeDefinition<?>>();
- public static synchronized EIDASSAMLEngine createSAMLEngine(MOAeIDASChainingMetadataProvider moaeIDASMetadataProvider) throws EIDASEngineException{
+ public static synchronized ProtocolEngineI createSAMLEngine(MOAeIDASChainingMetadataProvider moaeIDASMetadataProvider) throws EIDASEngineException{
if (eIDASEngine == null) {
try {
//get eIDAS SAMLengine configuration from MOA-ID configuration
CertificateConfigurationManager configManager = new MOAIDCertificateManagerConfigurationImpl();
+
+ //set metadata management to eIDAS SAMLengine
+ metadataFetcher = new MOAeIDASMetadataProviderDecorator(moaeIDASMetadataProvider);
+
+ //set metadata signer
+ metadataSigner = new MOASWSigner(configManager);
+
+ //build eIDAS SAML eninge
+ ProtocolEngineI engine = MOAProtocolEngineFactory.createProtocolEngine(
+ Constants.eIDAS_SAML_ENGINE_NAME,
+ configManager,
+ new EidasProtocolProcessor(metadataFetcher, metadataSigner),
+ new SamlEngineSystemClock());
- //initial eIDAS SAMLengine
- EIDASSAMLEngine engine = EIDASSAMLEngine.createSAMLEngine(Constants.eIDAS_SAML_ENGINE_NAME,
- configManager);
-
- //set metadata management to eIDAS SAMLengine
- engine.setMetadataProcessor(
- new MOAeIDASMetadataProviderDecorator(
- moaeIDASMetadataProvider));
-
- //set MOA specific extension processor
- ExtensionProcessorI extensionProcessor = new MOAeIDAsExtensionProcessor();
- engine.setExtensionProcessor(extensionProcessor);
-
+ //build a map with all actually supported attributes
+ for (AttributeDefinition<?> el : engine.getProtocolProcessor().getAllSupportedAttributes())
+ allSupportedAttributeMap.put(el.getFriendlyName(), el);
+
eIDASEngine = engine;
} catch (EIDASSAMLEngineException e) {
@@ -73,5 +88,45 @@ public class SAMLEngineUtils {
return eIDASEngine;
}
+
+ /**
+ * Get a map of all eIDAS attributes, which are actually supported by eIDAS engine
+ *
+ * @return Map<Attr. FriendlyName, AttributeDefinition>
+ */
+ public static Map<String, AttributeDefinition<?>> getMapOfAllAvailableAttributes() {
+ return allSupportedAttributeMap;
+
+ }
+
+ /**
+ * @return the metadataSigner
+ */
+ public static MetadataSignerI getMetadataSigner() {
+ if (eIDASEngine != null)
+ return metadataSigner;
+
+ else {
+ Logger.error("eIDAS SAMLEngine is not initialized.");
+ return null;
+
+ }
+ }
+
+ /**
+ * @return the metadataFetcher
+ */
+ public static MetadataFetcherI getMetadataFetcher() {
+ if (eIDASEngine != null)
+ return metadataFetcher;
+
+ else {
+ Logger.error("eIDAS SAMLEngine is not initialized.");
+ return null;
+
+ }
+ }
+
+
}