From e9bbb948534d4aaf3e7efff95b4484d81242f819 Mon Sep 17 00:00:00 2001 From: Bojan Suzic Date: Thu, 12 Jun 2014 19:19:59 +0200 Subject: stop over attributes which cannot be handled --- .../gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java | 1 + .../stork2/attributeproviders/MandateAttributeRequestProvider.java | 6 ++++++ 2 files changed, 7 insertions(+) (limited to 'id/server/idserverlib') diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java index 4ea32c602..8d56360b6 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java @@ -247,6 +247,7 @@ public class AttributeCollector implements IAction { Logger.debug("...successful"); Logger.info(e.getAp().getClass().getSimpleName() + " is going to ask an external service provider for the requested attributes"); + // add container-key to redirect embedded within the return URL e.getAp().performRedirect(AuthConfigurationProvider.getInstance().getPublicURLPrefix() + "/stork2/ResumeAuthentication?" + ARTIFACT_ID + "=" + newArtifactId, request, response, oaParam); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/MandateAttributeRequestProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/MandateAttributeRequestProvider.java index d08720f83..ba01de0fb 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/MandateAttributeRequestProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/MandateAttributeRequestProvider.java @@ -86,6 +86,12 @@ public class MandateAttributeRequestProvider extends AttributeProvider { requestedAttributes.add(personalAttribute); } + // continue with other attribute providers if there are no attributes current provider is able to handle + if (requestedAttributes.size() == 0) { + Logger.info("Attribute(s) " + attributes.toString() + " not supported by the provider: " + getAttrProviderName()); + throw new UnsupportedAttributeException(); + } + Logger.info("Thrown external request by: " + getAttrProviderName()); throw new ExternalAttributeRequestRequiredException(this); } -- cgit v1.2.3 From d242908f5f71864403ac930e1a168f96333157ad Mon Sep 17 00:00:00 2001 From: Bojan Suzic Date: Thu, 12 Jun 2014 19:58:43 +0200 Subject: adding gmbh company type --- .../protocols/stork2/MandateRetrievalRequest.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'id/server/idserverlib') diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java index 95b59314d..1d081fb1c 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java @@ -31,6 +31,7 @@ import java.io.StringWriter; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; +import java.util.regex.Pattern; /** * @@ -131,6 +132,18 @@ public class MandateRetrievalRequest implements IAction { String eLPIdentifier = geteLPIdentifier(mandateContainer, currentAttribute); PersonalAttribute personalAttribute = new PersonalAttribute(currentAttribute.getName(), currentAttribute.isRequired(), Arrays.asList(eLPIdentifier), "Available"); attributeList.add(personalAttribute); + } else if (currentAttribute.getName().equals("type")) { + String type = getCompanyType(mandateContainer, currentAttribute); + PersonalAttribute personalAttribute; + if (type.length() > 0) { + attributeList.add(new PersonalAttribute(currentAttribute.getName(), currentAttribute.isRequired(), Arrays.asList(type), "Available")); + } else { + attributeList.add(new PersonalAttribute(currentAttribute.getName(), currentAttribute.isRequired(), Arrays.asList(type), "NotAvailable")); + } + } else if (currentAttribute.getName().equals("translatableType")) { + String translatableType = ""; + PersonalAttribute personalAttribute = new PersonalAttribute(currentAttribute.getName(), currentAttribute.isRequired(), Arrays.asList(translatableType), "Available"); + attributeList.add(personalAttribute); } } @@ -241,6 +254,25 @@ public class MandateRetrievalRequest implements IAction { } + private String getCompanyType(MandateContainer mandateContainer, PersonalAttribute sourceAttribute) throws MOAIDException { + String legalName = getLegalName(mandateContainer, sourceAttribute); + + ArrayList gmbhPatterns = new ArrayList(); + gmbhPatterns.add(Pattern.compile(".+ gmbh$", Pattern.CASE_INSENSITIVE)); + gmbhPatterns.add(Pattern.compile(".+ Handelsges\\.m\\.b\\.H\\.$", Pattern.CASE_INSENSITIVE)); + gmbhPatterns.add(Pattern.compile(".+ Gesellschaft m\\.b\\.H\\.$", Pattern.CASE_INSENSITIVE)); + gmbhPatterns.add(Pattern.compile(".+ gesmbh$", Pattern.CASE_INSENSITIVE)); + + for (Pattern pattern : gmbhPatterns) { + if (pattern.matcher(legalName).matches()) { + return "GmbH"; + } + } + + return ""; + } + + private RepresentationPersonType getRepresentative(MandateContainer mandateContainer, PersonalAttribute sourceAttribute) { RepresentationPersonType representative = new RepresentationPersonType(); -- cgit v1.2.3