aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java133
1 files changed, 41 insertions, 92 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java
index 3d8661143..5d9485750 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java
@@ -26,65 +26,28 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.ServiceLoader;
import org.opensaml.saml2.core.Attribute;
+import at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeBuilder;
+import at.gv.egovernment.moa.id.protocols.builder.attributes.IAttributeGenerator;
+
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
import at.gv.egovernment.moa.id.data.IAuthData;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.BPKAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.BirthdateAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDAuthBlock;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDCcsURL;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDCitizenQAALevelAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDIdentityLinkBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDIssuingNationAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDSTORKTOKEN;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDSectorForIDAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDSignerCertificate;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDSourcePIN;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDSourcePINType;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.GivenNameAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateFullMandateAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateLegalPersonFullNameAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateLegalPersonSourcePinAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateLegalPersonSourcePinTypeAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateNaturalPersonBPKAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateNaturalPersonBirthDateAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateNaturalPersonFamilyNameAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateNaturalPersonGivenNameAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateNaturalPersonSourcePinAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateNaturalPersonSourcePinTypeAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateProfRepDescAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateProfRepOIDAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateReferenceValueAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.MandateTypeAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.PVPVersionAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.PrincipalNameAttributeBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKAdoptedFamilyNameAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKAgeAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKCanonicalResidenceAddressAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKCountryCodeOfBirthAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKFiscalNumberAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKGenderAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKInhertedFamilyNameAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKIsAgeOverAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKMaritalStatusAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKNationalityCodeAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKPseudonymAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKResidencePermitAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKTextResidenceAddressAttributBuilder;
-import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.STORKTitleAttributBuilder;
+
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.SamlAttributeGenerator;
+
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.InvalidDateFormatAttributeException;
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;
+
import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.InvalidDateFormatException;
import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.NoMandateDataAvailableException;
import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.PVP2Exception;
import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.UnprovideableAttributeException;
+import at.gv.egovernment.moa.logging.Logger;
public class PVPAttributeBuilder {
@@ -92,61 +55,47 @@ public class PVPAttributeBuilder {
private static HashMap<String, IAttributeBuilder> builders;
+ private static ServiceLoader<IAttributeBuilder> attributBuilderLoader =
+ ServiceLoader.load(IAttributeBuilder.class);
+
private static void addBuilder(IAttributeBuilder builder) {
builders.put(builder.getName(), builder);
}
static {
builders = new HashMap<String, IAttributeBuilder>();
- // Citizen Token normal
- addBuilder(new PVPVersionAttributeBuilder());
- addBuilder(new PrincipalNameAttributeBuilder());
- addBuilder(new GivenNameAttributeBuilder());
- addBuilder(new BirthdateAttributeBuilder());
- addBuilder(new BPKAttributeBuilder());
- addBuilder(new EIDCitizenQAALevelAttributeBuilder());
- addBuilder(new EIDIssuingNationAttributeBuilder());
- addBuilder(new EIDSectorForIDAttributeBuilder());
- addBuilder(new EIDIdentityLinkBuilder());
- addBuilder(new EIDAuthBlock());
- addBuilder(new EIDCcsURL());
- addBuilder(new EIDSignerCertificate());
- addBuilder(new EIDSourcePIN());
- addBuilder(new EIDSourcePINType());
- // Mandate Attributes
- addBuilder(new MandateTypeAttributeBuilder());
- addBuilder(new MandateLegalPersonFullNameAttributeBuilder());
- addBuilder(new MandateLegalPersonSourcePinAttributeBuilder());
- addBuilder(new MandateLegalPersonSourcePinTypeAttributeBuilder());
- addBuilder(new MandateNaturalPersonBirthDateAttributeBuilder());
- addBuilder(new MandateNaturalPersonBPKAttributeBuilder());
- addBuilder(new MandateNaturalPersonFamilyNameAttributeBuilder());
- addBuilder(new MandateNaturalPersonGivenNameAttributeBuilder());
- addBuilder(new MandateNaturalPersonSourcePinAttributeBuilder());
- addBuilder(new MandateNaturalPersonSourcePinTypeAttributeBuilder());
- addBuilder(new MandateTypeAttributeBuilder());
- addBuilder(new MandateProfRepOIDAttributeBuilder());
- addBuilder(new MandateProfRepDescAttributeBuilder());
- addBuilder(new MandateReferenceValueAttributeBuilder());
- addBuilder(new MandateFullMandateAttributeBuilder());
+ Logger.info("Loading protocol attribut-builder modules:");
+ if (attributBuilderLoader != null ) {
+ Iterator<IAttributeBuilder> moduleLoaderInterator = attributBuilderLoader.iterator();
+ while (moduleLoaderInterator.hasNext()) {
+ try {
+ IAttributeBuilder modul = moduleLoaderInterator.next();
+ Logger.info("Loading attribut-builder Modul Information: " + modul.getName());
+ addBuilder(modul);
+
+ } catch(Throwable e) {
+ Logger.error("Check configuration! " + "Some attribute-builder modul" +
+ " is not a valid IAttributeBuilder", e);
+ }
+ }
+ }
+
+ Logger.info("Loading attribute-builder modules done");
+
+ }
+
+
+ /**
+ * Get a specific attribute builder
+ *
+ * @param name Attribute-builder friendly name
+ *
+ * @return Attribute-builder with this name or null if builder does not exists
+ */
+ public static IAttributeBuilder getAttributeBuilder(String name) {
+ return builders.get(name);
- //STORK Attributes
- addBuilder(new EIDSTORKTOKEN());
- addBuilder(new STORKAdoptedFamilyNameAttributBuilder());
- addBuilder(new STORKAgeAttributBuilder());
- addBuilder(new STORKCanonicalResidenceAddressAttributBuilder());
- addBuilder(new STORKCountryCodeOfBirthAttributBuilder());
- addBuilder(new STORKFiscalNumberAttributBuilder());
- addBuilder(new STORKGenderAttributBuilder());
- addBuilder(new STORKInhertedFamilyNameAttributBuilder());
- addBuilder(new STORKIsAgeOverAttributBuilder());
- addBuilder(new STORKMaritalStatusAttributBuilder());
- addBuilder(new STORKNationalityCodeAttributBuilder());
- addBuilder(new STORKPseudonymAttributBuilder());
- addBuilder(new STORKResidencePermitAttributBuilder());
- addBuilder(new STORKTextResidenceAddressAttributBuilder());
- addBuilder(new STORKTitleAttributBuilder());
}
public static Attribute buildAttribute(String name, OAAuthParameter oaParam,