diff options
Diffstat (limited to 'id/server')
3 files changed, 23 insertions, 10 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/BPKBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/BPKBuilder.java index fd8f3f875..fc43d25e5 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/BPKBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/BPKBuilder.java @@ -141,9 +141,9 @@ public class BPKBuilder {       * @return storkid in a BASE64 encoding       * @throws BuildException if an error occurs on building the wbPK       */ -    public String buildStorkPK(String identificationValue, String destinationCountry) +    public String buildStorkbPK(String identificationValue, String destinationCountry)              throws BuildException { -        return buildStorkPK(identificationValue, "AT", destinationCountry); +        return buildStorkbPK(identificationValue, "AT", destinationCountry);      } @@ -156,17 +156,15 @@ public class BPKBuilder {       * @return storkid in a BASE64 encoding       * @throws BuildException if an error occurs on building the wbPK       */ -    public String buildStorkPK(String identificationValue, String sourceCountry, String destinationCountry) +    public String buildStorkbPK(String identificationValue, String sourceCountry, String destinationCountry)              throws BuildException {          if ((identificationValue == null ||                  identificationValue.length() == 0 ||                  destinationCountry == null ||                  destinationCountry.length() == 0 || -                destinationCountry.length() != 2 ||                  sourceCountry == null || -                sourceCountry.length() == 0 || -                sourceCountry.length() != 2)) { +                sourceCountry.length() == 0)) {              throw new BuildException("builder.00",                      new Object[]{"storkid", "Unvollständige Parameterangaben: identificationValue=" +                              identificationValue + ", Zielland=" + destinationCountry + ", Ursprungsland=" + sourceCountry}); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java index 3288e064f..6a2fe3bfc 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java @@ -54,6 +54,7 @@ public class AuthenticationRequest implements IAction {          this.moaSession = moasession;          this.moaStorkAuthnRequest = (MOASTORKAuthnRequest)req; +        try{          MISMandate mandate = moasession.getMISMandate();          String owbpk = mandate.getOWbPK();          byte[] mand = mandate.getMandate(); @@ -63,6 +64,7 @@ public class AuthenticationRequest implements IAction {          Logger.debug("mandate encoded: " + new String(org.bouncycastle.util.encoders.Base64.encode(mand))); +} catch (Exception x) {}          Logger.debug("Starting AuthenticationRequest");          //AuthenticationServer.getInstance().startSTORKAuthentication(httpReq, httpResp, moasession); @@ -72,7 +74,9 @@ public class AuthenticationRequest implements IAction {          httpResp.reset();          STORKAuthnResponse authnResponse = new STORKAuthnResponse(); -        authnResponse.setCountry("EU"); +        authnResponse.setCountry(((MOASTORKAuthnRequest)req).getStorkAuthnRequest().getSpCountry()); + +          OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moasession.getPublicOAURLPrefix());          if (oaParam == null) @@ -137,7 +141,7 @@ public class AuthenticationRequest implements IAction {          // Define attribute list to be populated          PersonalAttributeList attributeList = new PersonalAttributeList(); -        MOAAttributeProvider moaAttributeProvider = new MOAAttributeProvider(moaSession.getIdentityLink()); +        MOAAttributeProvider moaAttributeProvider = new MOAAttributeProvider(moaSession.getIdentityLink(), moaStorkAuthnRequest);          try {              for (PersonalAttribute personalAttribute : attrLst) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java index 414e383fa..190a0d27c 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java @@ -1,6 +1,8 @@  package at.gv.egovernment.moa.id.protocols.stork2; +import at.gv.egovernment.moa.id.auth.builder.BPKBuilder;  import at.gv.egovernment.moa.id.auth.data.IdentityLink; +import at.gv.egovernment.moa.id.auth.exception.BuildException;  import at.gv.egovernment.moa.logging.Logger;  import eu.stork.peps.auth.commons.PersonalAttribute;  import eu.stork.peps.auth.commons.PersonalAttributeList; @@ -20,6 +22,7 @@ public class MOAAttributeProvider {      private final IdentityLink identityLink;      private static final Map<String, String> storkAttributeSimpleMapping;      private static final Map<String, String> storkAttributeFunctionMapping; +    private final MOASTORKAuthnRequest moastorkAuthnRequest;      static {          Map<String, String> tempSimpleMap = new HashMap<String, String>(); @@ -32,8 +35,9 @@ public class MOAAttributeProvider {          storkAttributeFunctionMapping = Collections.unmodifiableMap(tempFunctionMap);      } -    public MOAAttributeProvider(IdentityLink identityLink) { +    public MOAAttributeProvider(IdentityLink identityLink, MOASTORKAuthnRequest moastorkAuthnRequest) {          this.identityLink = identityLink; +        this.moastorkAuthnRequest = moastorkAuthnRequest;          Logger.debug("identity " + identityLink.getIdentificationType() + " " + identityLink.getIdentificationValue());      } @@ -66,9 +70,16 @@ public class MOAAttributeProvider {      }      private String geteIdentifier() { -        return "askdlaskdlaskdsds"; +        Logger.debug("Using base urn for identification value: " + identityLink.getIdentificationType() + " and target country: " + moastorkAuthnRequest.getStorkAuthnRequest().getSpCountry()); +        try { +            return new BPKBuilder().buildStorkbPK(identityLink.getIdentificationValue(), moastorkAuthnRequest.getStorkAuthnRequest().getSpCountry()); +        } catch (BuildException be) { +            Logger.error("Stork eid could not be constructed; " + be.getMessage()); +            return null; // TODO error +        }      } +      private void populateAttributeWithMethod(Method method, Object object, PersonalAttributeList attributeList, String storkAttribute, Boolean isRequired) {          try {              String attributeValue = method.invoke(object, new Class[]{}).toString(); | 
