diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-02-22 12:27:38 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-02-22 12:27:38 +0100 | 
| commit | f81e455bfc1bdd23ce89bfcc0b626210417d0cbb (patch) | |
| tree | 1f85f501d522f0295a41dee1a8c016143431b612 /id/server/idserverlib/src/main/java | |
| parent | f441b49a4eadb475396217901bbbc49973ca8107 (diff) | |
| download | moa-id-spss-f81e455bfc1bdd23ce89bfcc0b626210417d0cbb.tar.gz moa-id-spss-f81e455bfc1bdd23ce89bfcc0b626210417d0cbb.tar.bz2 moa-id-spss-f81e455bfc1bdd23ce89bfcc0b626210417d0cbb.zip | |
fix some refactoring problems
Diffstat (limited to 'id/server/idserverlib/src/main/java')
8 files changed, 87 insertions, 252 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java index 1207439dd..dbf95f604 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java @@ -1085,8 +1085,9 @@ public class AuthenticationDataBuilder extends MOAIDAuthConstants {          		}	              	if (saml1Requst != null && protocolRequest.getClass().isInstance(saml1Requst)) -            		target = protocolRequest.getGenericData("target", String.class); -            	else +            		target = protocolRequest.getGenericData( +            				MOAIDAuthConstants.AUTHPROCESS_DATA_TARGET, String.class); +            	else               		target = oaParam.getTarget();                  String bpkBase64 = new BPKBuilder().buildBPK(baseID, target); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java index a1a814e95..961700651 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/RequestImpl.java @@ -25,15 +25,13 @@ package at.gv.egovernment.moa.id.moduls;  import java.io.Serializable;  import java.net.MalformedURLException;  import java.net.URL; +import java.util.Collection;  import java.util.HashMap;  import java.util.List;  import java.util.Map;  import javax.servlet.http.HttpServletRequest; -import org.opensaml.saml2.core.Attribute; -import org.springframework.beans.factory.annotation.Autowired; -  import at.gv.egovernment.moa.id.advancedlogging.TransactionIDUtils;  import at.gv.egovernment.moa.id.auth.exception.SessionDataStorageException;  import at.gv.egovernment.moa.id.commons.MOAIDConstants; @@ -41,7 +39,6 @@ import at.gv.egovernment.moa.id.config.ConfigurationException;  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.protocols.pvp2x.builder.AttributQueryBuilder;  import at.gv.egovernment.moa.id.util.HTTPUtils;  import at.gv.egovernment.moa.id.util.Random;  import at.gv.egovernment.moa.logging.Logger; @@ -79,9 +76,7 @@ public abstract class RequestImpl implements IRequest, Serializable{  	private Map<String, Object> genericDataStorage = new HashMap<String, Object>(); -	 -	@Autowired protected AttributQueryBuilder attributQueryBuilder;  -	 +	 	  	/**  	 * @throws ConfigurationException   	 *  @@ -169,9 +164,9 @@ public abstract class RequestImpl implements IRequest, Serializable{  	/**  	 * This method map the protocol specific requested attributes to PVP 2.1 attributes.  	 *  -	 * @return List of PVP 2.1 attributes with maps all protocol specific attributes +	 * @return List of PVP 2.1 attribute names with maps all protocol specific attributes  	 */ -	public abstract List<Attribute> getRequestedAttributes(); +	public abstract Collection<String> getRequestedAttributes();  	public void setOAURL(String value) {  		oaURL = value; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java index eb4cb8a18..f64aacc6d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java @@ -25,6 +25,17 @@ package at.gv.egovernment.moa.id.protocols.pvp2x;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; +import org.joda.time.DateTime; +import org.opensaml.common.xml.SAMLConstants; +import org.opensaml.saml2.core.Assertion; +import org.opensaml.saml2.core.AuthnRequest; +import org.opensaml.saml2.core.Response; +import org.opensaml.saml2.metadata.AssertionConsumerService; +import org.opensaml.saml2.metadata.EntityDescriptor; +import org.opensaml.ws.message.encoder.MessageEncodingException; +import org.opensaml.xml.security.SecurityException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext;  import org.springframework.stereotype.Service;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; @@ -33,22 +44,80 @@ import at.gv.egovernment.moa.id.data.SLOInformationImpl;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; -import at.gv.egovernment.moa.id.protocols.pvp2x.requestHandler.RequestManager; +import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IEncoder; +import at.gv.egovernment.moa.id.protocols.pvp2x.binding.PostBinding; +import at.gv.egovernment.moa.id.protocols.pvp2x.binding.RedirectBinding; +import at.gv.egovernment.moa.id.protocols.pvp2x.builder.AuthResponseBuilder; +import at.gv.egovernment.moa.id.protocols.pvp2x.builder.assertion.PVP2AssertionBuilder; +import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.BindingNotSupportedException; +import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest; +import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils; +import at.gv.egovernment.moa.logging.Logger;  @Service("PVPAuthenticationRequestAction")  public class AuthenticationAction implements IAction { +	@Autowired ApplicationContext context; +	  	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq,  			HttpServletResponse httpResp, IAuthData authData) throws MOAIDException {  		PVPTargetConfiguration pvpRequest = (PVPTargetConfiguration) req; -		SLOInformationImpl sloInformation = (SLOInformationImpl) RequestManager.getInstance().handle(pvpRequest, httpReq, httpResp, authData); +		//get basic information +		MOARequest moaRequest = (MOARequest) pvpRequest.getRequest(); +		AuthnRequest authnRequest = (AuthnRequest) moaRequest.getSamlRequest(); +		EntityDescriptor peerEntity = moaRequest.getEntityMetadata();		 +		 +		AssertionConsumerService consumerService =  +				SAML2Utils.createSAMLObject(AssertionConsumerService.class); +		consumerService.setBinding(pvpRequest.getBinding()); +		consumerService.setLocation(pvpRequest.getConsumerURL()); +				 +		DateTime date = new DateTime(); +		 +		SLOInformationImpl sloInformation = new SLOInformationImpl(); +		 +		//build Assertion +		Assertion assertion = PVP2AssertionBuilder.buildAssertion(pvpRequest, authnRequest, authData,  +				peerEntity, date, consumerService, sloInformation); +		 +		Response authResponse = AuthResponseBuilder.buildResponse(pvpRequest.getAuthURL(), authnRequest, date, assertion); +							 +		IEncoder binding = null; + +		if (consumerService.getBinding().equals( +				SAMLConstants.SAML2_REDIRECT_BINDING_URI)) { +			binding = context.getBean(RedirectBinding.class); +						 +		} else if (consumerService.getBinding().equals( +				SAMLConstants.SAML2_POST_BINDING_URI)) { +			binding = context.getBean(PostBinding.class); +			 +		} + +		if (binding == null) { +			throw new BindingNotSupportedException(consumerService.getBinding()); +		} +		 +		try { +			binding.encodeRespone(httpReq, httpResp, authResponse,  +					consumerService.getLocation(), moaRequest.getRelayState()); + +			//set protocol type +			sloInformation.setProtocolType(req.requestedModule()); +			return sloInformation; +			 +		} catch (MessageEncodingException e) { +			Logger.error("Message Encoding exception", e); +			throw new MOAIDException("pvp2.01", null, e); +			 +		} catch (SecurityException e) { +			Logger.error("Security exception", e); +			throw new MOAIDException("pvp2.01", null, e); -		//set protocol type -		sloInformation.setProtocolType(req.requestedModule()); +		} -		return sloInformation;  	}  	public boolean needAuthentication(IRequest req, HttpServletRequest httpReq, diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java index 800728bbd..27773a248 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVPTargetConfiguration.java @@ -22,12 +22,12 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x; +import java.util.Collection;  import java.util.HashMap;  import java.util.List;  import java.util.Map;  import org.opensaml.common.xml.SAMLConstants; -import org.opensaml.saml2.core.Attribute;  import org.opensaml.saml2.core.impl.AuthnRequestImpl;  import org.opensaml.saml2.metadata.AttributeConsumingService;  import org.opensaml.saml2.metadata.RequestedAttribute; @@ -81,7 +81,7 @@ public class PVPTargetConfiguration extends RequestImpl {  	 * @see at.gv.egovernment.moa.id.moduls.RequestImpl#getRequestedAttributes()  	 */  	@Override -	public List<Attribute> getRequestedAttributes() { +	public Collection<String> getRequestedAttributes() {  		Map<String, String> reqAttr = new HashMap<String, String>();  		for (String el : PVP2XProtocol.DEFAULTREQUESTEDATTRFORINTERFEDERATION) @@ -123,7 +123,8 @@ public class PVPTargetConfiguration extends RequestImpl {  					reqAttr.put(attr.getName(), "");  			} -			return attributQueryBuilder.buildSAML2AttributeList(this.getOnlineApplicationConfiguration(), reqAttr.keySet().iterator()); +			//return attributQueryBuilder.buildSAML2AttributeList(this.getOnlineApplicationConfiguration(), reqAttr.keySet().iterator()); +			return reqAttr.keySet();  		} catch (NoMetadataInformationException e) {  			Logger.warn("NO metadata found for Entity " + getRequest().getEntityID()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AbstractPVPMetadataBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AbstractPVPMetadataBuilder.java index 23870806a..0212f8f1c 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AbstractPVPMetadataBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/AbstractPVPMetadataBuilder.java @@ -439,7 +439,7 @@ public abstract class AbstractPVPMetadataBuilder {  		}  		//check nameID formates -		if (getIDPPossibleNameITTypes() == null || getIDPPossibleNameITTypes().size() == 0) { +		if (getSPAllowedNameITTypes() == null || getSPAllowedNameITTypes().size() == 0) {  			Logger.warn("SP Metadata generation FAILED! --> Builder has NO provideable SAML2 nameIDFormats. ");  			return null; @@ -448,7 +448,7 @@ public abstract class AbstractPVPMetadataBuilder {  				NameIDFormat nameIDFormat = SAML2Utils.createSAMLObject(NameIDFormat.class);  				nameIDFormat.setFormat(format);		  				spSSODescriptor.getNameIDFormats().add(nameIDFormat); -							 +						 	  			}			  		} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/AuthnRequestHandler.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/AuthnRequestHandler.java deleted file mode 100644 index 4fbca5b13..000000000 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/AuthnRequestHandler.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright 2014 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - *******************************************************************************/ -package at.gv.egovernment.moa.id.protocols.pvp2x.requestHandler; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.joda.time.DateTime; -import org.opensaml.common.xml.SAMLConstants; -import org.opensaml.saml2.core.Assertion; -import org.opensaml.saml2.core.AuthnRequest; -import org.opensaml.saml2.core.Response; -import org.opensaml.saml2.metadata.AssertionConsumerService; -import org.opensaml.saml2.metadata.EntityDescriptor; -import org.opensaml.ws.message.encoder.MessageEncodingException; -import org.opensaml.xml.security.SecurityException; - -import at.gv.egovernment.moa.id.auth.exception.MOAIDException; -import at.gv.egovernment.moa.id.data.IAuthData; -import at.gv.egovernment.moa.id.data.SLOInformationImpl; -import at.gv.egovernment.moa.id.data.SLOInformationInterface; -import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants; -import at.gv.egovernment.moa.id.protocols.pvp2x.PVPTargetConfiguration; -import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IEncoder; -import at.gv.egovernment.moa.id.protocols.pvp2x.binding.PostBinding; -import at.gv.egovernment.moa.id.protocols.pvp2x.binding.RedirectBinding; -import at.gv.egovernment.moa.id.protocols.pvp2x.builder.AuthResponseBuilder; -import at.gv.egovernment.moa.id.protocols.pvp2x.builder.assertion.PVP2AssertionBuilder; -import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.BindingNotSupportedException; -import at.gv.egovernment.moa.id.protocols.pvp2x.messages.InboundMessage; -import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest; -import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils; -import at.gv.egovernment.moa.logging.Logger; - -public class AuthnRequestHandler implements IRequestHandler, PVPConstants { - -	public boolean handleObject(InboundMessage obj) { -	 -		return (obj instanceof MOARequest &&  -				((MOARequest)obj).getSamlRequest() instanceof AuthnRequest); -	} - -	public SLOInformationInterface process(PVPTargetConfiguration obj, HttpServletRequest req, -			HttpServletResponse resp, IAuthData authData) throws MOAIDException { -		if (!handleObject(obj.getRequest())) { -			throw new MOAIDException("pvp2.13", null); -		} -		 -		//get basic information -		MOARequest moaRequest = (MOARequest) obj.getRequest(); -		AuthnRequest authnRequest = (AuthnRequest) moaRequest.getSamlRequest(); -		EntityDescriptor peerEntity = moaRequest.getEntityMetadata();		 -		 -		AssertionConsumerService consumerService =  -				SAML2Utils.createSAMLObject(AssertionConsumerService.class); -		consumerService.setBinding(obj.getBinding()); -		consumerService.setLocation(obj.getConsumerURL()); -				 -		DateTime date = new DateTime(); -		 -		SLOInformationImpl sloInformation = new SLOInformationImpl(); -		 -		//build Assertion -		Assertion assertion = PVP2AssertionBuilder.buildAssertion(obj, authnRequest, authData,  -				peerEntity, date, consumerService, sloInformation); -		 -		Response authResponse = AuthResponseBuilder.buildResponse(obj.getAuthURL(), authnRequest, date, assertion); -							 -		IEncoder binding = null; - -		if (consumerService.getBinding().equals( -				SAMLConstants.SAML2_REDIRECT_BINDING_URI)) { -			binding = new RedirectBinding(); -						 -		} else if (consumerService.getBinding().equals( -				SAMLConstants.SAML2_POST_BINDING_URI)) { -			binding = new PostBinding(); -			 -		} - -		if (binding == null) { -			throw new BindingNotSupportedException(consumerService.getBinding()); -		} -		 -		try { -			binding.encodeRespone(req, resp, authResponse,  -					consumerService.getLocation(), moaRequest.getRelayState()); -				 -			return sloInformation; -			 -		} catch (MessageEncodingException e) { -			Logger.error("Message Encoding exception", e); -			throw new MOAIDException("pvp2.01", null, e); -			 -		} catch (SecurityException e) { -			Logger.error("Security exception", e); -			throw new MOAIDException("pvp2.01", null, e); - -		} -	} -} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/IRequestHandler.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/IRequestHandler.java deleted file mode 100644 index 293dccf6c..000000000 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/IRequestHandler.java +++ /dev/null @@ -1,40 +0,0 @@ -/******************************************************************************* - * Copyright 2014 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - *******************************************************************************/ -package at.gv.egovernment.moa.id.protocols.pvp2x.requestHandler; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import at.gv.egovernment.moa.id.auth.exception.MOAIDException; -import at.gv.egovernment.moa.id.data.IAuthData; -import at.gv.egovernment.moa.id.data.SLOInformationInterface; -import at.gv.egovernment.moa.id.protocols.pvp2x.PVPTargetConfiguration; -import at.gv.egovernment.moa.id.protocols.pvp2x.messages.InboundMessage; -import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest; - -public interface IRequestHandler { -	public boolean handleObject(InboundMessage obj); - -	public SLOInformationInterface process(PVPTargetConfiguration pvpRequest, HttpServletRequest req, -			HttpServletResponse resp, IAuthData authData) throws MOAIDException; -} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java deleted file mode 100644 index f26b2a735..000000000 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright 2014 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - *******************************************************************************/ -package at.gv.egovernment.moa.id.protocols.pvp2x.requestHandler; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import at.gv.egovernment.moa.id.auth.exception.MOAIDException; -import at.gv.egovernment.moa.id.data.IAuthData; -import at.gv.egovernment.moa.id.data.SLOInformationInterface; -import at.gv.egovernment.moa.id.protocols.pvp2x.PVPTargetConfiguration; -import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.SAMLRequestNotSupported; - -public class RequestManager { -	 -	private static RequestManager instance = null; -	 -	private List<IRequestHandler> handler; -	 -	public static synchronized RequestManager getInstance() { -		if(instance == null) { -			instance = new RequestManager(); -		} -		return instance; -	} -	 -	private RequestManager() { -		handler = new ArrayList<IRequestHandler>(); -		handler.add(new AuthnRequestHandler()); -		 -	} -	 -	public SLOInformationInterface handle(PVPTargetConfiguration pvpRequest, HttpServletRequest req, HttpServletResponse resp, IAuthData authData)  -			throws SAMLRequestNotSupported, MOAIDException { -		Iterator<IRequestHandler> it = handler.iterator(); -		while(it.hasNext()) { -			IRequestHandler handler = it.next(); -			if(handler.handleObject(pvpRequest.getRequest())) { -				return handler.process(pvpRequest, req, resp, authData); -			} -		} -		 -		// not handled -		throw new SAMLRequestNotSupported(); -	} -} | 
