diff options
| author | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2016-01-12 15:57:30 +0100 | 
|---|---|---|
| committer | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2016-01-12 16:12:41 +0100 | 
| commit | 29f01a4975f637c26fbcd0b43a9c844d7d3d2e54 (patch) | |
| tree | 5b22919d9791315b039a6afd8e01da8cd8673ada /id/server/modules/moa-id-module-eIDAS | |
| parent | 1092129203ea1f5c17ae8a10ec43f7907140759c (diff) | |
| download | moa-id-spss-29f01a4975f637c26fbcd0b43a9c844d7d3d2e54.tar.gz moa-id-spss-29f01a4975f637c26fbcd0b43a9c844d7d3d2e54.tar.bz2 moa-id-spss-29f01a4975f637c26fbcd0b43a9c844d7d3d2e54.zip | |
fetch requested attributes from configuration
Diffstat (limited to 'id/server/modules/moa-id-module-eIDAS')
| -rw-r--r-- | id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java | 42 | 
1 files changed, 24 insertions, 18 deletions
| diff --git a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java index 9b289a435..57588287d 100644 --- a/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java +++ b/id/server/modules/moa-id-module-eIDAS/src/main/java/at/gv/egovernment/moa/id/auth/modules/eidas/tasks/GenerateAuthnRequestTask.java @@ -24,10 +24,12 @@ package at.gv.egovernment.moa.id.auth.modules.eidas.tasks;  import java.io.IOException;  import java.io.StringWriter; +import java.util.Collection;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.BooleanUtils;  import org.apache.commons.lang3.StringUtils;  import org.apache.velocity.Template;  import org.apache.velocity.VelocityContext; @@ -56,6 +58,7 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfiguration;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProviderFactory;  import at.gv.egovernment.moa.id.config.auth.IOAAuthParameters;  import at.gv.egovernment.moa.id.config.stork.CPEPS; +import at.gv.egovernment.moa.id.config.stork.StorkAttribute;  import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.moduls.RequestStorage;  import at.gv.egovernment.moa.id.process.api.ExecutionContext; @@ -111,27 +114,30 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {  			String destination = cpeps.getPepsURL().toString().split(";")[1].trim(); // FIXME convenience for metadata url and assertion destination  			String metadataUrl = cpeps.getPepsURL().toString().split(";")[0].trim(); -			EIDASSAMLEngine engine = SAMLEngineUtils.createSAMLEngine(); +			// assemble requested attributes +			Collection<StorkAttribute> attributesFromConfig = oaConfig.getRequestedSTORKAttributes(); + +			// - prepare attribute list  			IPersonalAttributeList pAttList = new PersonalAttributeList(); -			//create template requested attribute -			//TODO: load required attributes from OA configuration -			PersonalAttribute attr = new PersonalAttribute(); -			attr.setName("eidas/attributes/CurrentFamilyName"); -			pAttList.add(attr); +			// - fill container +			for (StorkAttribute current : attributesFromConfig) { +				PersonalAttribute newAttribute = new PersonalAttribute(); +				newAttribute.setName(current.getName()); + +				boolean globallyMandatory = false; +				for (StorkAttribute currentGlobalAttribute : moaconfig.getStorkConfig().getStorkAttributes()) +					if (current.getName().equals(currentGlobalAttribute.getName())) { +						globallyMandatory = BooleanUtils.isTrue(currentGlobalAttribute.getMandatory()); +						break; +					} + +				newAttribute.setIsRequired(current.getMandatory() || globallyMandatory); +				pAttList.add(newAttribute); +			} + +			EIDASSAMLEngine engine = SAMLEngineUtils.createSAMLEngine(); -			PersonalAttribute attr1 = new PersonalAttribute(); -			attr1.setName("eidas/attributes/CurrentGivenName"); -			pAttList.add(attr1); -			 -			PersonalAttribute attr2 = new PersonalAttribute(); -			attr2.setName("eidas/attributes/DateOfBirth"); -			pAttList.add(attr2); -			 -			PersonalAttribute attr3 = new PersonalAttribute(); -			attr3.setName("eidas/attributes/PersonIdentifier"); -			pAttList.add(attr3); -			  			//build eIDAS AuthnRequest  			EIDASAuthnRequest authnRequest = new EIDASAuthnRequest();  			authnRequest.setProviderName(moaconfig.getPublicURLPrefix()); | 
