From 7ce4c799eb26f65ef8826b74d0fb09a8d1f4949d Mon Sep 17 00:00:00 2001
From: Florian Reimair <florian.reimair@iaik.tugraz.at>
Date: Tue, 4 Mar 2014 17:05:01 +0100
Subject: fixed response handling

---
 .../id/protocols/stork2/AttributeCollector.java    | 22 +++++++++++-----------
 .../moa/id/protocols/stork2/STORKProtocol.java     |  9 +++++----
 2 files changed, 16 insertions(+), 15 deletions(-)

(limited to 'id/server/idserverlib/src/main/java')

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 7342a45aa..b2f5076b6 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
@@ -49,8 +49,18 @@ public class AttributeCollector implements IAction {
      */
     public String processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException {
 
+		// - fetch the container
+		String artifactId = (String) httpReq.getParameter(ARTIFACT_ID);
+		DataContainer container;
+		try {
+			container = AssertionStorage.getInstance().get(artifactId, DataContainer.class);
+		} catch (MOADatabaseException e) {
+			Logger.error("Error fetching incomplete Stork response from temporary storage. Most likely a timeout occured.", e);
+			throw new MOAIDException("stork.11", null);
+		}
+
         // read configuration parameters of OA
-        OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moasession.getPublicOAURLPrefix());
+        OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(container.getRequest().getAssertionConsumerServiceURL());
         if (oaParam == null)
             throw new AuthenticationException("stork.12", new Object[]{moasession.getPublicOAURLPrefix()});
 
@@ -73,16 +83,6 @@ public class AttributeCollector implements IAction {
             Logger.error("No attribute could be retrieved from the response the attribute provider gave us.");
         }
 
-        // - fetch the container
-        String artifactId = (String) httpReq.getAttribute(ARTIFACT_ID);
-        DataContainer container;
-        try {
-            container = AssertionStorage.getInstance().get(artifactId, DataContainer.class);
-        } catch (MOADatabaseException e) {
-            Logger.error("Error fetching incomplete Stork response from temporary storage. Most likely a timeout occured.", e);
-            throw new MOAIDException("stork.11", null);
-        }
-
         // - insert the embedded attribute(s) into the container
         addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes);
 
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java
index d2f2ff663..638035008 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java
@@ -71,16 +71,17 @@ public class STORKProtocol implements IModulInfo, MOAIDAuthConstants {
         Logger.debug("Request content length: " + request.getContentLength());
         Logger.debug("Initiating action: " + action);
 
+        MOASTORKRequest STORK2Request = new MOASTORKRequest();
+
+		if (AttributeCollector.class.getSimpleName().equals(action))
+			return STORK2Request;
+
         HTTPInTransport profileReq = new HttpServletRequestAdapter(request);
         HTTPOutTransport profileResp = new HttpServletResponseAdapter(response, request.isSecure());
 
-
         BasicSAMLMessageContext samlMessageContext = new BasicSAMLMessageContext();
         samlMessageContext.setInboundMessageTransport(profileReq);
 
-        MOASTORKRequest STORK2Request = new MOASTORKRequest();
-
-
         //extract STORK Response from HTTP Request
         byte[] decSamlToken;
         try {
-- 
cgit v1.2.3