diff options
Diffstat (limited to 'id/server/idserverlib')
| -rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java | 91 | 
1 files changed, 48 insertions, 43 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 c711d9400..428d1c52c 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 @@ -42,54 +42,59 @@ import eu.stork.peps.exceptions.STORKSAMLEngineException;   *    */  public class AttributeCollector implements IAction { -	 -	/** The Constant ARTIFACT_ID. */ -	private static final String ARTIFACT_ID = "artifactId"; -	 + +    /** +     * The Constant ARTIFACT_ID. +     */ +    private static final String ARTIFACT_ID = "artifactId"; +      /* (non-Javadoc)       * @see at.gv.egovernment.moa.id.moduls.IAction#processRequest(at.gv.egovernment.moa.id.moduls.IRequest, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.auth.data.AuthenticationSession)       */      public String processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { -		// read configuration parameters of OA -		OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moasession.getPublicOAURLPrefix()); -		if (oaParam == null) -			throw new AuthenticationException("stork.12", new Object[] { moasession.getPublicOAURLPrefix() }); - -    	// find the attribute provider plugin that can handle the response -		IPersonalAttributeList newAttributes = null; -		for (AttributeProvider current : AttributeProviderFactory.getConfiguredPlugins(oaParam.getStorkAPs())) -			try { -				newAttributes = current.parse(httpReq); -			} catch (UnsupportedAttributeException e1) { -				// the current provider cannot find anything familiar within the -				// provided httpreq. Try the next one. -			} - -		if (null == newAttributes) { -			// we do not have a provider which is capable of fetching something -			// from the received httpreq. -			// TODO should we continue with the next attribute? -			Logger.error("No attribute could be retrieved from the response the attribute provider gave us."); -			throw new MOAIDException("stork.11", null); -		} - -    	// - 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 -		for(PersonalAttribute current : newAttributes) -			container.getResponse().getPersonalAttributeList().add(current); -    	 -    	// see if we need some more attributes -    	return processRequest(container, httpReq, httpResp, moasession, oaParam); +        // read configuration parameters of OA +        OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moasession.getPublicOAURLPrefix()); +        if (oaParam == null) +            throw new AuthenticationException("stork.12", new Object[]{moasession.getPublicOAURLPrefix()}); + +        // find the attribute provider plugin that can handle the response +        IPersonalAttributeList newAttributes = null; +        for (AttributeProvider current : AttributeProviderFactory.getConfiguredPlugins(oaParam.getStorkAPs())) +            try { +                newAttributes = current.parse(httpReq); +            } catch (UnsupportedAttributeException e1) { +                // the current provider cannot find anything familiar within the +                // provided httpreq. Try the next one. +                // TODO check the loop +            } + +        if (null == newAttributes) { +            // we do not have a provider which is capable of fetching something +            // from the received httpreq. +            // TODO should we continue with the next attribute? +            Logger.error("No attribute could be retrieved from the response the attribute provider gave us."); +            throw new MOAIDException("stork.11", null); +        } + +        // - 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 +        for (PersonalAttribute current : newAttributes) +            container.getResponse().getPersonalAttributeList().add(current); + +        // see if we need some more attributes +        return processRequest(container, httpReq, httpResp, moasession, oaParam);      }      /** | 
