diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-10-29 14:06:00 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2014-10-29 14:06:00 +0100 | 
| commit | 08e1d59be7c555a49f75988b050a43e0431ce9be (patch) | |
| tree | fa00dbb1fe13779decdb13aefe8b46e848371b6e /id/ConfigWebTool/src/main/java/at | |
| parent | 41b1942dc69f1284894270e724ef517fb689f075 (diff) | |
| parent | b9e2c8e57097ab446264a4e5f42765c5ed67dceb (diff) | |
| download | moa-id-spss-08e1d59be7c555a49f75988b050a43e0431ce9be.tar.gz moa-id-spss-08e1d59be7c555a49f75988b050a43e0431ce9be.tar.bz2 moa-id-spss-08e1d59be7c555a49f75988b050a43e0431ce9be.zip | |
Merge branch 'ISA-1.18-action' into moa-2.1-Snapshot
Conflicts:
	id/server/idserverlib/pom.xml
Diffstat (limited to 'id/ConfigWebTool/src/main/java/at')
6 files changed, 256 insertions, 9 deletions
| diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java index c4a825589..28eba9f34 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/OAListElement.java @@ -24,7 +24,7 @@ package at.gv.egovernment.moa.id.configuration.data;  public class OAListElement { -	public enum ServiceType {OA, VIDP, IDP}  +	public enum ServiceType {OA, VIDP, IDP, GWAY}   	private long dataBaseID;  	private String oaIdentifier; diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java index 9431cc1fd..2f9df18aa 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAMOAIDPInterfederationConfig.java @@ -45,9 +45,11 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	private static final Logger log = Logger.getLogger(OAMOAIDPInterfederationConfig.class);  	private String queryURL; -	private boolean inboundSSO = true; -	private boolean outboundSSO = true; -	private boolean storeSSOSession = true; +	private Boolean inboundSSO = true; +	private Boolean outboundSSO = true; +	private Boolean storeSSOSession = true; +	private Boolean passiveRequest = true; +	private Boolean localAuthOnError = true;  	/* (non-Javadoc)  	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#getName() @@ -70,6 +72,8 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  			this.inboundSSO = moaIDP.isInboundSSO();  			this.outboundSSO = moaIDP.isOutboundSSO();  			this.storeSSOSession = moaIDP.isStoreSSOSession(); +			this.localAuthOnError = moaIDP.isPerformLocalAuthenticationOnError(); +			this.passiveRequest = moaIDP.isPerformPassivRequest();  		}  		return null; @@ -95,8 +99,10 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  			moaIDP.setInboundSSO(inboundSSO);  			moaIDP.setOutboundSSO(outboundSSO);  			moaIDP.setStoreSSOSession(storeSSOSession); -		} -		 +			moaIDP.setPerformLocalAuthenticationOnError(localAuthOnError); +			moaIDP.setPerformPassivRequest(passiveRequest); +			 +		}		  		return null;  	} @@ -143,7 +149,7 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	 * @return the inboundSSO  	 */  	public boolean isInboundSSO() { -		return inboundSSO; +		return inboundSSO.booleanValue();  	}  	/** @@ -157,7 +163,7 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	 * @return the outboundSSO  	 */  	public boolean isOutboundSSO() { -		return outboundSSO; +		return outboundSSO.booleanValue();  	}  	/** @@ -171,7 +177,7 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	 * @return the storeSSOSession  	 */  	public boolean isStoreSSOSession() { -		return storeSSOSession; +		return storeSSOSession.booleanValue();  	}  	/** @@ -180,6 +186,34 @@ public class OAMOAIDPInterfederationConfig implements IOnlineApplicationData {  	public void setStoreSSOSession(boolean storeSSOSession) {  		this.storeSSOSession = storeSSOSession;  	} + +	/** +	 * @return the passiveRequest +	 */ +	public boolean isPassiveRequest() { +		return passiveRequest.booleanValue(); +	} + +	/** +	 * @param passiveRequest the passiveRequest to set +	 */ +	public void setPassiveRequest(boolean passiveRequest) { +		this.passiveRequest = passiveRequest; +	} + +	/** +	 * @return the localAuthOnError +	 */ +	public boolean isLocalAuthOnError() { +		return localAuthOnError.booleanValue(); +	} + +	/** +	 * @param localAuthOnError the localAuthOnError to set +	 */ +	public void setLocalAuthOnError(boolean localAuthOnError) { +		this.localAuthOnError = localAuthOnError; +	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java new file mode 100644 index 000000000..23af59d8e --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java @@ -0,0 +1,136 @@ +/* + * 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.configuration.data.oa; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.log4j.Logger; + +import at.gv.egovernment.moa.id.commons.db.dao.config.InterfederationGatewayType; +import at.gv.egovernment.moa.id.commons.db.dao.config.InterfederationIDPType; +import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; +import at.gv.egovernment.moa.id.commons.validation.ValidationHelper; +import at.gv.egovernment.moa.id.configuration.Constants; +import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser; +import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper; +import at.gv.egovernment.moa.util.MiscUtil; + +/** + * @author tlenz + * + */ +public class PVPGatewayInterfederationConfig implements IOnlineApplicationData { + +	private static final Logger log = Logger.getLogger(PVPGatewayInterfederationConfig.class); +	 +	private String entityID = null; +	 +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#getName() +	 */ +	@Override +	public String getName() { +		return "PVPGatewayInterfederation"; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#parse(at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public List<String> parse(OnlineApplication dbOA, +			AuthenticatedUser authUser, HttpServletRequest request) { +		 +		InterfederationGatewayType gateway = dbOA.getInterfederationGateway(); +		if (gateway != null) { +			this.entityID = gateway.getForwardIDPIdentifier(); + +		} +		 +		return null; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#store(at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public String store(OnlineApplication dbOA, AuthenticatedUser authUser, +			HttpServletRequest request) { + +		if (authUser.isAdmin()) {			 +			dbOA.setIsInterfederationGateway(true); +			 +			InterfederationGatewayType gateway = dbOA.getInterfederationGateway(); +			if (gateway == null) { +				gateway = new InterfederationGatewayType(); +				dbOA.setInterfederationGateway(gateway); +			} +			 +			gateway.setForwardIDPIdentifier(entityID); +		} +		 +		dbOA.setType(Constants.MOA_CONFIG_BUSINESSSERVICE);		 +		return null; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData#validate(at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig, at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser, javax.servlet.http.HttpServletRequest) +	 */ +	@Override +	public List<String> validate(OAGeneralConfig general, +			AuthenticatedUser authUser, HttpServletRequest request) { +		 +		List<String> errors  = new ArrayList<String>(); +		 +		if (MiscUtil.isNotEmpty(entityID)) { +			if (!ValidationHelper.validateURL(entityID)) { +				log.info("PVP gateway EntityID is not valid"); +				errors.add(LanguageHelper.getErrorString("validation.interfederation.gateway.entityID.valid", request)); +				 +			} +			 +		} else +			errors.add(LanguageHelper.getErrorString("validation.interfederation.gateway.entityID.empty", request)); +				 +		return errors; +	} + +	/** +	 * @return the entityID +	 */ +	public String getEntityID() { +		return entityID; +	} + +	/** +	 * @param entityID the entityID to set +	 */ +	public void setEntityID(String entityID) { +		this.entityID = entityID; +	} + + +	 +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java index dc97dd2c8..150483dd8 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java @@ -43,6 +43,9 @@ public class FormDataHelper {  			if (dboa.isIsInterfederationIDP()!= null && dboa.isIsInterfederationIDP())  				formOAs.add(addOAFormListElement(dboa, ServiceType.IDP)); +			else if (dboa.isIsInterfederationGateway()!= null && dboa.isIsInterfederationGateway()) +				formOAs.add(addOAFormListElement(dboa, ServiceType.GWAY)); +			  			else if (dboa.getAuthComponentOA().getOASTORK() != null   						&& dboa.getAuthComponentOA().getOASTORK().isVidpEnabled() != null  						&& dboa.getAuthComponentOA().getOASTORK().isVidpEnabled()) diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IDPGatewayAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IDPGatewayAction.java new file mode 100644 index 000000000..e238c6d37 --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IDPGatewayAction.java @@ -0,0 +1,56 @@ +/* + * 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.configuration.struts.action; + +import java.util.LinkedHashMap; + +import at.gv.egovernment.moa.id.configuration.data.oa.IOnlineApplicationData; +import at.gv.egovernment.moa.id.configuration.data.oa.OAMOAIDPInterfederationConfig; +import at.gv.egovernment.moa.id.configuration.data.oa.OAPVP2Config; +import at.gv.egovernment.moa.id.configuration.data.oa.PVPGatewayInterfederationConfig; + +/** + * @author tlenz + * + */ +public class IDPGatewayAction extends InterfederationIDPAction { + +	private static final long serialVersionUID = -2047128481980413334L; +	 +	public IDPGatewayAction() { +		super();		 +		formList.putAll(buildIDPGatewayFormList()); +	} +	 +	public static LinkedHashMap<String, IOnlineApplicationData> buildIDPGatewayFormList() { +		 +		LinkedHashMap<String, IOnlineApplicationData> forms =  +				new LinkedHashMap<String, IOnlineApplicationData>();  +						 +		PVPGatewayInterfederationConfig pvpGatewayconfig = new PVPGatewayInterfederationConfig();	 +		forms.put(pvpGatewayconfig.getName(), pvpGatewayconfig); +		 +    	return forms; +	} + +} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java index f84bcdbce..89dce3200 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java @@ -46,6 +46,7 @@ import at.gv.egovernment.moa.id.configuration.data.oa.OAMOAIDPInterfederationCon  import at.gv.egovernment.moa.id.configuration.data.oa.OAOAuth20Config;  import at.gv.egovernment.moa.id.configuration.data.oa.OASTORKConfig;  import at.gv.egovernment.moa.id.configuration.data.oa.OATargetConfiguration; +import at.gv.egovernment.moa.id.configuration.data.oa.PVPGatewayInterfederationConfig;  import at.gv.egovernment.moa.id.configuration.exception.BasicActionException;  import at.gv.egovernment.moa.id.configuration.exception.BasicOAActionException;  import at.gv.egovernment.moa.id.configuration.helper.FormDataHelper; @@ -63,6 +64,7 @@ public class InterfederationIDPAction extends BasicOAAction {  	public static final String STRUTS_IDP_VIDP = "-VIDP";  	public static final String STRUTS_IDP_MOA = "-MOAIDP"; +	public static final String STRUTS_IDP_GATEWAY = "-IDPGATEWAY";  	private List<OAListElement> formOAs;  @@ -123,6 +125,9 @@ public class InterfederationIDPAction extends BasicOAAction {  			if (STRUTS_IDP_MOA.equals(interfederationType)) {  				formList.putAll(MOAIDPAction.buildMOAIDPFormList()); +			 +			} else if (STRUTS_IDP_GATEWAY.equals(interfederationType)) { +				formList.putAll(IDPGatewayAction.buildIDPGatewayFormList());  			} else if (STRUTS_IDP_VIDP.equals(interfederationType)) {  				formList.putAll(VIDPAction.buildVIDPFormList()); @@ -178,6 +183,10 @@ public class InterfederationIDPAction extends BasicOAAction {  					getStorkOA().getAttributeProviderPlugins().add(new AttributeProviderPlugin());  				interfederationType = STRUTS_IDP_VIDP; +			} else if (oa.isIsInterfederationGateway() != null && oa.isIsInterfederationGateway()) {  +				formList.putAll(IDPGatewayAction.buildIDPGatewayFormList()); +				interfederationType = STRUTS_IDP_GATEWAY; +								  			} else {  				log.warn("Requested application is not an interfederation IDP.");  				return Constants.STRUTS_NOTALLOWED; @@ -217,6 +226,7 @@ public class InterfederationIDPAction extends BasicOAAction {  			if ( onlineapplication != null &&   					!((onlineapplication.isIsInterfederationIDP() != null && onlineapplication.isIsInterfederationIDP()) ||  +					(onlineapplication.isIsInterfederationGateway() != null && onlineapplication.isIsInterfederationGateway()) ||							  					(onlineapplication.getAuthComponentOA().getOASTORK() != null   						&& onlineapplication.getAuthComponentOA().getOASTORK().isVidpEnabled() != null  						&& onlineapplication.getAuthComponentOA().getOASTORK().isVidpEnabled()))) {				 @@ -415,6 +425,14 @@ public class InterfederationIDPAction extends BasicOAAction {      	formList.put(pvp2oa.getName(), pvp2oa);      } +    public PVPGatewayInterfederationConfig getPVPGateway() { +    	return (PVPGatewayInterfederationConfig) formList.get(new PVPGatewayInterfederationConfig().getName()); +    } +     +    public void setPVPGateway(PVPGatewayInterfederationConfig val) { +    	formList.put(val.getName(), val); +    } +          /**       * @return the formOA       */ | 
