diff options
Diffstat (limited to 'id')
2 files changed, 41 insertions, 17 deletions
| 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 7801f9a54..93b2b0495 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 @@ -1,11 +1,14 @@  package at.gv.egovernment.moa.id.protocols.stork2; +import java.io.IOException; +import java.io.StringWriter;  import java.util.ArrayList;  import java.util.List;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; +import at.gv.egovernment.moa.id.auth.stork.VelocityProvider;  import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; @@ -17,10 +20,18 @@ import at.gv.egovernment.moa.logging.Logger;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.VelocityEngine;  import org.opensaml.common.impl.SecureRandomIdentifierGenerator;  import eu.stork.peps.auth.commons.IPersonalAttributeList; +import eu.stork.peps.auth.commons.PEPSUtil;  import eu.stork.peps.auth.commons.PersonalAttribute; +import eu.stork.peps.auth.commons.STORKAuthnRequest; +import eu.stork.peps.auth.commons.STORKAuthnResponse; +import eu.stork.peps.auth.engine.STORKSAMLEngine; +import eu.stork.peps.exceptions.STORKSAMLEngineException;  /**   * the AttributeCollector Action tries to get all requested attributes from a set of {@link AttributeProvider} Plugins. @@ -92,8 +103,6 @@ public class AttributeCollector implements IAction {       */      public String processRequest(DataContainer container, HttpServletRequest request, HttpServletResponse response, AuthenticationSession moasession, OAAuthParameter oaParam) throws MOAIDException {          // check if there are attributes we need to fetch -        this.httpResp = response; -        this.container = container;          IPersonalAttributeList requestAttributeList = container.getRequest().getPersonalAttributeList();          IPersonalAttributeList responseAttributeList = container.getResponse().getPersonalAttributeList(); @@ -126,11 +135,10 @@ public class AttributeCollector implements IAction {              }              // build response -            generateSTORKResponse(); +            generateSTORKResponse(container);              // set new http response -            generateRedirectResponse(); -            response = httpResp; +            generateRedirectResponse(response, container);              return "12345"; // AssertionId @@ -161,7 +169,7 @@ public class AttributeCollector implements IAction {      } -    private void generateSTORKResponse() throws MOAIDException { +    private void generateSTORKResponse(DataContainer container) throws MOAIDException {          STORKAuthnResponse authnResponse = container.getResponse();          STORKAuthnRequest authnRequest = container.getRequest(); @@ -181,21 +189,16 @@ public class AttributeCollector implements IAction {          Logger.info("STORK SAML Response message succesfully generated ");          String statusCodeValue = authnResponse.getStatusCode(); -        try { -            Logger.debug("authn saml plain:" + authnResponse.getTokenSaml()); -            Logger.debug("authn saml string:" + new String(authnResponse.getTokenSaml())); // works -            Logger.debug("authn saml encodedx: " + new String(org.bouncycastle.util.encoders.Base64.encode(IOUtils.toString(authnResponse.getTokenSaml()).getBytes()))); - -        } catch (IOException e) { -            e.printStackTrace(); -        } +        Logger.debug("authn saml plain:" + authnResponse.getTokenSaml()); +		Logger.debug("authn saml string:" + new String(authnResponse.getTokenSaml())); +		Logger.debug("authn saml encodedx: " + PEPSUtil.encodeSAMLToken(authnResponse.getTokenSaml()));          container.setResponse(authnResponse);      } -    private void generateRedirectResponse() { +    private void generateRedirectResponse(HttpServletResponse httpResp, DataContainer container) {          STORKAuthnResponse authnResponse = container.getResponse();          STORKAuthnRequest authnRequest = container.getRequest(); @@ -207,8 +210,8 @@ public class AttributeCollector implements IAction {              Template template = velocityEngine.getTemplate("/resources/templates/stork2_postbinding_template.html");              VelocityContext context = new VelocityContext(); -            context.put("SAMLResponse", new String(org.bouncycastle.util.encoders.Base64.encode(IOUtils.toString(authnResponse.getTokenSaml()).getBytes()))); -            Logger.debug("SAMLResponse original: " + new String(org.bouncycastle.util.encoders.Base64.encode(IOUtils.toString(authnResponse.getTokenSaml()).getBytes()))); +            context.put("SAMLResponse", PEPSUtil.encodeSAMLToken(authnResponse.getTokenSaml()).getBytes()); +            Logger.debug("SAMLResponse original: " + new String(authnResponse.getTokenSaml()).getBytes());              Logger.debug("Putting assertion consumer url as action: " + authnRequest.getAssertionConsumerServiceURL());              context.put("action", authnRequest.getAssertionConsumerServiceURL()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/DataContainer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/DataContainer.java index 40c827ef8..a1c40526d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/DataContainer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/DataContainer.java @@ -23,6 +23,9 @@ public class DataContainer implements Serializable {  	/** The target. */  	private String target; +	/** The remote address. */ +	private String remoteAddress; +	  	/**  	 * Gets the request.  	 * @@ -76,4 +79,22 @@ public class DataContainer implements Serializable {  	public void setTarget(String target) {  		this.target = target;  	} + +	/** +	 * Gets the remote address. +	 * +	 * @return the remote address +	 */ +	public String getRemoteAddress() { +		return remoteAddress; +	} + +	/** +	 * Sets the remote address. +	 * +	 * @param remoteAddress the new remote address +	 */ +	public void setRemoteAddress(String remoteAddress) { +		this.remoteAddress = remoteAddress; +	}  } | 
