diff options
Diffstat (limited to 'id/server/idserverlib/src')
2 files changed, 63 insertions, 43 deletions
| 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 cb49856c4..18d0b479e 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 @@ -9,10 +9,7 @@ import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate;  import at.gv.egovernment.moa.logging.Logger; -import eu.stork.peps.auth.commons.IPersonalAttributeList; -import eu.stork.peps.auth.commons.PersonalAttribute; -import eu.stork.peps.auth.commons.PersonalAttributeList; -import eu.stork.peps.auth.commons.STORKAuthnResponse; +import eu.stork.peps.auth.commons.*;  import org.apache.velocity.app.VelocityEngine;  import org.apache.velocity.runtime.RuntimeConstants;  import org.w3c.dom.Element; @@ -45,65 +42,63 @@ public class AuthenticationRequest implements IAction {              this.moaStorkRequest = (MOASTORKRequest) req; +            Logger.debug("Entering MOASTORKRequest"); +            httpResp.reset(); -            if (moasession.getUseMandate()) { -                try { -                    MISMandate mandate = moasession.getMISMandate(); -                    String owbpk = mandate.getOWbPK(); -                    byte[] mand = mandate.getMandate(); -                    String profprep = mandate.getProfRep(); -                    //String textdesc = mandate.getTextualDescriptionOfOID(); -                    Element mndt = moasession.getMandate(); - -                    iterate(mndt.getAttributes()); -                    Logger.debug("mandate encoded: " + new String(org.bouncycastle.util.encoders.Base64.encode(mand))); -                } catch (Exception x) { -                    Logger.debug("There is no mandate used in transaction"); -                } -            } - +            // check if it is attribute query +            if (moaStorkRequest.isAttrRequest()) { +                Logger.debug("Starting AttrQueryRequest"); +                STORKAttrQueryResponse attrResponse = new STORKAttrQueryResponse(); +                IPersonalAttributeList personalAttributeList = moaStorkRequest.getStorkAttrQueryRequest().getPersonalAttributeList(); -            Logger.debug("Starting AuthenticationRequest"); -            httpResp.reset(); +                // TODO Check if this instance is eligible to fetch attributes locally, assuming yes -            STORKAuthnResponse authnResponse = new STORKAuthnResponse(); -            authnResponse.setCountry(moaStorkRequest.getStorkAuthnRequest().getSpCountry()); +                return (new AttributeCollector()).processRequest(req, httpReq, httpResp, moasession); +            } else +                // check if we have authentication request +                if (moaStorkRequest.isAuthnRequest()) { +                    Logger.debug("Starting AuthenticationRequest"); -            OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moasession.getPublicOAURLPrefix()); -            if (oaParam == null) -                throw new AuthenticationException("stork.12", new Object[]{moasession.getPublicOAURLPrefix()}); +                    STORKAuthnResponse authnResponse = new STORKAuthnResponse(); +                    authnResponse.setCountry(moaStorkRequest.getStorkAuthnRequest().getSpCountry()); +                    OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moasession.getPublicOAURLPrefix()); +                    if (oaParam == null) +                        throw new AuthenticationException("stork.12", new Object[]{moasession.getPublicOAURLPrefix()}); -            // Get personal attributtes from MOA/IdentityLink -            authnResponse.setPersonalAttributeList(populateAttributes()); +                    // Get personal attributtes from MOA/IdentityLink +                    authnResponse.setPersonalAttributeList(populateAttributes()); -            // Prepare extended attributes -            Logger.debug("Preparing data container"); +                    // Prepare extended attributes +                    Logger.debug("Preparing data container"); -            // create fresh container -            DataContainer container = new DataContainer(); +                    // create fresh container +                    DataContainer container = new DataContainer(); -            // - fill in the request we extracted above -            container.setRequest(moaStorkRequest.getStorkAuthnRequest()); +                    // - fill in the request we extracted above +                    container.setRequest(moaStorkRequest.getStorkAuthnRequest()); -            // - fill in the partial response created above -            container.setResponse(authnResponse); +                    // - fill in the partial response created above +                    container.setResponse(authnResponse); -            // - memorize the target url were we have to return the result -            container.setTarget(moaStorkRequest.getStorkAuthnRequest().getAssertionConsumerServiceURL()); +                    // - memorize the target url were we have to return the result +                    container.setTarget(moaStorkRequest.getStorkAuthnRequest().getAssertionConsumerServiceURL()); -            container.setRemoteAddress(httpReq.getRemoteAddr()); +                    container.setRemoteAddress(httpReq.getRemoteAddr()); -            Logger.debug("Data container prepared"); +                    Logger.debug("Data container prepared"); -            return (new AttributeCollector()).processRequest(container, httpReq, httpResp, moasession, oaParam); +                    return (new AttributeCollector()).processRequest(container, httpReq, httpResp, moasession, oaParam); +                }          } else {              Logger.error("Could not recognize request.");              throw new MOAIDException("stork.15", null);          } + +        return null;      }      public boolean needAuthentication(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp) { @@ -120,6 +115,28 @@ public class AuthenticationRequest implements IAction {      } +    // does nothing +    public void mandate(AuthenticationSession moasession) { + +        if (moasession.getUseMandate()) { +            try { +                MISMandate mandate = moasession.getMISMandate(); +                String owbpk = mandate.getOWbPK(); +                byte[] mand = mandate.getMandate(); +                String profprep = mandate.getProfRep(); +                //String textdesc = mandate.getTextualDescriptionOfOID(); +                Element mndt = moasession.getMandate(); + +                iterate(mndt.getAttributes()); +                Logger.debug("mandate encoded: " + new String(org.bouncycastle.util.encoders.Base64.encode(mand))); +            } catch (Exception x) { +                Logger.debug("There is no mandate used in transaction"); +            } +        } + + +    } +      public PersonalAttributeList populateAttributes() {          IPersonalAttributeList attrLst = moaStorkRequest.getStorkAuthnRequest().getPersonalAttributeList(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOASTORKRequest.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOASTORKRequest.java index 1776d958c..47a86174f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOASTORKRequest.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOASTORKRequest.java @@ -1,6 +1,5 @@  package at.gv.egovernment.moa.id.protocols.stork2; -import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.logging.Logger;  import eu.stork.peps.auth.commons.STORKAttrQueryRequest; @@ -49,6 +48,10 @@ public class MOASTORKRequest implements IRequest {          return this.storkAuthnRequest;      } +    public STORKAttrQueryRequest getStorkAttrQueryRequest() { +        return this.storkAttrQueryRequest; +    } +      public String getOAURL() {          if (isAuthnRequest)              return storkAuthnRequest.getAssertionConsumerServiceURL(); | 
