diff options
2 files changed, 66 insertions, 4 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 fbc959cc4..b93b31b49 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,12 +1,19 @@  package at.gv.egovernment.moa.id.protocols.stork2; +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.MOAIDException;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; +  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; +import eu.stork.peps.auth.commons.IPersonalAttributeList; +import eu.stork.peps.auth.commons.PersonalAttribute; +  /**   * the AttributeCollector Action tries to get all requested attributes from a set of {@link AttributeProvider} Plugins.   * The class is called whenever the {@link AuthenticationRequest} Action is invoked and checks for missing attributes. @@ -17,6 +24,14 @@ import javax.servlet.http.HttpServletResponse;   *    */  public class AttributeCollector implements IAction { +	 +	private ArrayList<AttributeProvider> attributeProviders; + +	public AttributeCollector() { +		// TODO generate from config +		attributeProviders = new ArrayList<AttributeProvider>(); +		attributeProviders.add(new DemoNoRedirectAttributeProvider()); +	}      /* (non-Javadoc) @@ -44,10 +59,25 @@ public class AttributeCollector implements IAction {       */      public String processRequest(DataContainer container) {      	// check if there are attributes we need to fetch -    	// for each attribute still missing -    	// - check if we can find a suitable AttributeProvider Plugin -    	// - hand over control to the suitable plugin -    	// - add the aquired attribute to the container +    	List<String> missingAttributes = new ArrayList<String>(); +    	try { +	    	// for each attribute still missing +    	 +	    	for(String currentAttribute : missingAttributes) { +	    	// - check if we can find a suitable AttributeProvider Plugin +	    		for(AttributeProvider currentProvider : attributeProviders) { +	    			// - hand over control to the suitable plugin +	    			PersonalAttribute aquiredAttribute = currentProvider.acquire(currentAttribute); +	 +	    			// - add the aquired attribute to the container +	    			container.getResponse().getPersonalAttributeList().add(aquiredAttribute); +	    		} +	    	} +    	} catch(UnsupportedAttributeException e) { +    		// TODO +    		// memorize the container again +    		return "12345"; // TODO what to do here? +    	}      	// build response      	// done      	return "12345"; // AssertionId diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/DemoNoRedirectAttributeProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/DemoNoRedirectAttributeProvider.java new file mode 100644 index 000000000..23afc2544 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/DemoNoRedirectAttributeProvider.java @@ -0,0 +1,32 @@ +package at.gv.egovernment.moa.id.protocols.stork2; + +import java.util.ArrayList; + +import javax.servlet.http.HttpServletRequest; + +import eu.stork.peps.auth.commons.PersonalAttribute; + +/** + * Just a simple demoprovider who can fetch any attribute you ask him. + */ +public class DemoNoRedirectAttributeProvider implements AttributeProvider { + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#acquire(java.lang.String) +	 */ +	@Override +	public PersonalAttribute acquire(String attributeName) +			throws UnsupportedAttributeException { +		return new PersonalAttribute("sepp", true, new ArrayList<String>(), ""); +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#parse(javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public PersonalAttribute parse(HttpServletRequest httpReq) { +		// TODO Auto-generated method stub +		return null; +	} + +} | 
