diff options
| author | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2014-03-20 12:19:56 +0100 | 
|---|---|---|
| committer | Florian Reimair <florian.reimair@iaik.tugraz.at> | 2014-03-20 12:20:48 +0100 | 
| commit | c54fd74a0ac1c03beb6870abf4710daddfd16a33 (patch) | |
| tree | 00efeeb8d8a2459e95f6104088ce93347ebc8cbf /id/server/idserverlib/src/main | |
| parent | 81e83a4889ea8a3c2a1cd645bc02b5b72604e71f (diff) | |
| download | moa-id-spss-c54fd74a0ac1c03beb6870abf4710daddfd16a33.tar.gz moa-id-spss-c54fd74a0ac1c03beb6870abf4710daddfd16a33.tar.bz2 moa-id-spss-c54fd74a0ac1c03beb6870abf4710daddfd16a33.zip | |
adapted inbound mandate handling to samlengine
Diffstat (limited to 'id/server/idserverlib/src/main')
| -rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java | 32 | 
1 files changed, 31 insertions, 1 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java index 57843d0f3..ab9decde0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java @@ -138,7 +138,37 @@ public class STORKResponseProcessor {  			String citizenSignature = getAttributeValue("signedDoc", attributeList);
  			// if we have a signedDoc we test for a representation case
 -			if(hasAttribute("mandateContent", attributeList) || hasAttribute("representative", attributeList) || hasAttribute("represented", attributeList)) {
 +			// - according to stork samlengine and commons
 +			if(hasAttribute("mandate", attributeList)) {
 +				// we have a representation case
 +				String mandate = getAttributeValue("mandate", attributeList);
 +				
 +				if(!hasAttribute("dateOfBirth", attributeList)) {
 +					// if we get here, we have a natural person representing a legal person
 +					String organizationAddress = getAttributeValue("canonicalRegisteredAddress", attributeList);
 +					String organizationType = getAttributeValue("translateableType", attributeList);
 +					
 +					identityLinkResponse = AuthenticationServer.getInstance().getIdentityLink(citizenSignature, null, null, mandate, organizationAddress, organizationType, targetType, targetValue, oaFriendlyName, filters);
 +				} else {
 +					// if we get here, we have a natural person representing another natural person
 +					String eIdentifier = getAttributeValue("eIdentifier", attributeList);
 +					String givenName = getAttributeValue("givenName", attributeList);
 +					String lastName = getAttributeValue("surname", attributeList);
 +					String dateOfBirth = getAttributeValue("dateOfBirth", attributeList);
 +					
 +					// gender attribute is mandatory here because of some legal stuff
 +					String gender = getAttributeValue("gender", attributeList);
 +					
 +					if (!StringUtils.isEmpty(dateOfBirth))
 +						dateOfBirth = DateTimeUtils.formatPEPSDateToMOADate(dateOfBirth);
 +
 +					identityLinkResponse = AuthenticationServer.getInstance().getIdentityLink(eIdentifier, 
 +							givenName, lastName, dateOfBirth, gender, citizenSignature, null,
 +							null, mandate, targetType, targetValue, oaFriendlyName, filters);
 +				}
 +			}
 +			// - according to stork spec
 +			else if(hasAttribute("mandateContent", attributeList) || hasAttribute("representative", attributeList) || hasAttribute("represented", attributeList)) {
  				// we have a representation case
  				String representative = getAttributeValue("representative", attributeList);
  				String represented = getAttributeValue("represented", attributeList);
 | 
