diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-11-04 14:46:07 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-11-04 14:46:07 +0100 | 
| commit | 9a859b2e6f94042ef0665eb4f63248e48978a059 (patch) | |
| tree | 04a467e243a177371b6db91b590d4f204cbdd0b8 /id/server/idserverlib/src | |
| parent | 6865934e3b6e20dd145025703e51af8b4b259e1b (diff) | |
| download | moa-id-spss-9a859b2e6f94042ef0665eb4f63248e48978a059.tar.gz moa-id-spss-9a859b2e6f94042ef0665eb4f63248e48978a059.tar.bz2 moa-id-spss-9a859b2e6f94042ef0665eb4f63248e48978a059.zip | |
update STORK attribute provider implementation
Diffstat (limited to 'id/server/idserverlib/src')
3 files changed, 48 insertions, 38 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 e3b9992aa..192f139eb 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 @@ -121,7 +121,7 @@ public class AttributeCollector implements IAction {              if (authnResponse.getPersonalAttributeList().size() > 0) {                  Logger.info("Response from external attribute provider contains " + authnResponse.getPersonalAttributeList().size() + " attributes."); -                addOrUpdateAll(container.getResponse().getPersonalAttributeList(), authnResponse.getPersonalAttributeList()); +                container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), authnResponse.getPersonalAttributeList()));              }          } @@ -157,7 +157,7 @@ public class AttributeCollector implements IAction {          // - insert the embedded attribute(s) into the container          if (null != newAttributes) -            addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes); +        	container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes));          // see if we need some more attributes          SLOInformationImpl sloInfo = (SLOInformationImpl) processRequest(container, httpReq, httpResp, authData, oaParam); @@ -203,7 +203,8 @@ public class AttributeCollector implements IAction {  				IPersonalAttributeList aquiredAttributes = new PersonalAttributeList();  				currentAttribute.setStatus(AttributeStatusType.NOT_AVAILABLE.value());  				aquiredAttributes.add((PersonalAttribute) currentAttribute.clone()); -				addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes); +				container.getResponse().setPersonalAttributeList( +						addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes));              	// - check if we can find a suitable AttributeProvider Plugin  		        Iterator<AttributeProvider> attibuteProvidersInterator = AttributeProviderFactory.getConfiguredPlugins(oaParam.getStorkAPs());         @@ -247,7 +248,7 @@ public class AttributeCollector implements IAction {  					Logger.error("We have no suitable plugin for obtaining the attribute '" + currentAttribute.getName() + "'");  				} else  					// else, update any existing attributes -					addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes); +					container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes));              }              Logger.info("collecting attributes done"); @@ -296,15 +297,21 @@ public class AttributeCollector implements IAction {       *       * @param target the target       * @param source the source +     * @return        * @throws MOAIDException        */ -	private void addOrUpdateAll(IPersonalAttributeList target, IPersonalAttributeList source) throws MOAIDException { +	private PersonalAttributeList addOrUpdateAll(IPersonalAttributeList target, IPersonalAttributeList source) throws MOAIDException { + +		PersonalAttributeList updatedList = new PersonalAttributeList(); +		for (PersonalAttribute el : target) +			updatedList.add(el); +		  		Logger.debug("Updating " + source.size() + " attributes...");  		for (PersonalAttribute current : source) {  			Logger.debug("treating " + current.getName());  			// check if we need to update the current pa -			if (target.containsKey(current.getName())) { +			if (updatedList.containsKey(current.getName())) {  				PersonalAttribute existing = target.get(current.getName());  				if(!(existing.isEmptyValue() && existing.isEmptyComplexValue()))  					if(!(existing.getValue().equals(current.getValue()) || existing.getComplexValue().equals(current.getComplexValue()))) { @@ -312,14 +319,16 @@ public class AttributeCollector implements IAction {  		                throw new MOAIDException("stork.16", new Object[] {existing.getName()});  					} -				target.get(current.getName()).setStatus(current.getStatus()); -				target.get(current.getName()).setValue(current.getValue()); -				target.get(current.getName()).setComplexValue(current.getComplexValue()); +				updatedList.get(current.getName()).setStatus(current.getStatus()); +				updatedList.get(current.getName()).setValue(current.getValue()); +				updatedList.get(current.getName()).setComplexValue(current.getComplexValue());  			} else -				target.add(current); +				updatedList.add(current); -			Logger.debug("...successfully treated " + current.getName()); +			Logger.debug("...successfully treated " + current.getName());			  		} +		 +		return updatedList;  	}      /* (non-Javadoc) diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java index 993514ec7..755102bf3 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java @@ -71,7 +71,7 @@ public class MOAAttributeProvider {      public MOAAttributeProvider(IAuthData authData, MOASTORKRequest moastorkRequest) {          this.authData = authData;          this.moastorkRequest = moastorkRequest; -        Logger.debug("identity " + authData.getIdentificationType() + " " + authData.getIdentificationValue()); +              }      public void populateAttribute(PersonalAttributeList attributeList, PersonalAttribute requestedAttribute ) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java index 96aa55bcf..a026bac81 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java @@ -193,33 +193,34 @@ public class PVPAuthenticationProvider extends AttributeProvider {  	public IPersonalAttributeList parse(HttpServletRequest httpReq)  			throws UnsupportedAttributeException, MOAIDException { -		Logger.info(this.getClass().getSimpleName() + " tries to extract SAMLResponse out of HTTP Request"); +		throw new UnsupportedAttributeException(); -		//extract STORK Response from HTTP Request -		//Decodes SAML Response -		byte[] decSamlToken; -		try { -			decSamlToken = PEPSUtil.decodeSAMLToken(httpReq.getParameter("SAMLResponse")); -		} catch(NullPointerException e) { -			throw new UnsupportedAttributeException(); -		} - -		//Get SAMLEngine instance -		STORKSAMLEngine engine = STORKSAMLEngine.getInstance("VIDP"); - -		STORKAuthnResponse authnResponse = null; -		try { -			//validate SAML Token -			Logger.debug("Starting validation of SAML response"); -			authnResponse = engine.validateSTORKAuthnResponse(decSamlToken, (String) httpReq.getRemoteHost()); -			Logger.info("SAML response successfully verified!"); -			 -		}catch(STORKSAMLEngineException e){ -			Logger.error("Failed to verify STORK SAML Response", e); -			throw new MOAIDException("stork.05", null); -		} -		 -		return authnResponse.getPersonalAttributeList(); +//		Logger.info(this.getClass().getSimpleName() + " tries to extract SAMLResponse out of HTTP Request");		 +//		//extract STORK Response from HTTP Request +//		//Decodes SAML Response +//		byte[] decSamlToken; +//		try { +//			decSamlToken = PEPSUtil.decodeSAMLToken(httpReq.getParameter("SAMLResponse")); +//		} catch(NullPointerException e) { +//			throw new UnsupportedAttributeException(); +//		} +// +//		//Get SAMLEngine instance +//		STORKSAMLEngine engine = STORKSAMLEngine.getInstance("VIDP"); +// +//		STORKAuthnResponse authnResponse = null; +//		try { +//			//validate SAML Token +//			Logger.debug("Starting validation of SAML response"); +//			authnResponse = engine.validateSTORKAuthnResponse(decSamlToken, (String) httpReq.getRemoteHost()); +//			Logger.info("SAML response successfully verified!"); +//			 +//		}catch(STORKSAMLEngineException e){ +//			Logger.error("Failed to verify STORK SAML Response", e); +//			throw new MOAIDException("stork.05", null); +//		} +//		 +//		return authnResponse.getPersonalAttributeList();  	} | 
