diff options
Diffstat (limited to 'id/ConfigWebTool/src/main')
8 files changed, 303 insertions, 3 deletions
| 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..d6cbaf952 --- /dev/null +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java @@ -0,0 +1,134 @@ +/* + * 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.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); +		} +		 +		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/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 813aa1960..589f7d714 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;  @@ -122,6 +124,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()); @@ -403,6 +408,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       */ diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties index 39bfcd36b..02133494f 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_de.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_de.properties @@ -111,6 +111,7 @@ webpages.inderfederation.moaid.attributQueryURL=AttributQuery Service URL  webpages.interfederation.new.header=Neuen Identity Provider hinzuf\u00FCgen  webpages.interfederation.new.vidp=STORK VIDP  webpages.interfederation.new.moaid=MOA-ID IDP +webpages.inderfederation.gateway.entityID=EntityID des PVP Portals @@ -492,9 +493,11 @@ validation.pvp2.metadata.validation=Die Metadaten konnten von der angegebenen UR  validation.sso.logouturl.empty=Eine URL zum Single Log-Out Service ist erforderlich.  validation.sso.logouturl.valid=Die URL zum Single Log-Out Service wei\u00DFt kein g\u00FCltiges Format auf. -validation.interfederation.moaidp.queryurl.valid=Die URL zum zum AttributQuery Service wei\u00DFt kein g\u00FCltiges Format auf. -validation.interfederation.moaidp.queryurl.empty=Die URL zum zum AttributQuery Service muss f\u00FCr eingehende Single Sign-On Interfederation konfiguriert werden.  +validation.interfederation.moaidp.queryurl.valid=Die URL zum AttributQuery Service wei\u00DFt kein g\u00FCltiges Format auf. +validation.interfederation.moaidp.queryurl.empty=Die URL zum AttributQuery Service muss konfiguriert werden.  validation.interfederation.moaidp.metadataurl.publicservice=Die Domain des Metadaten Services f\u00FCr diesen IDP erlaubt nur Applikationen aus dem privatwirtschaftlichen Bereich. +validation.interfederation.gateway.entityID.valid=Die EntityID zum PVP Portal wei\u00DFt kein g\u00FCltiges Format auf. +validation.interfederation.gateway.entityID.empty=Die EntityID zum PVP Portal muss konfiguriert werden.  validation.saml1.providestammzahl=ProvideStammZahl kann nicht mit Applikationen aus dem privatwirtschaftlichen Bereich kombiniert werden. diff --git a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties index 07c8d708d..a8c784e1d 100644 --- a/id/ConfigWebTool/src/main/resources/applicationResources_en.properties +++ b/id/ConfigWebTool/src/main/resources/applicationResources_en.properties @@ -111,6 +111,7 @@ webpages.inderfederation.moaid.attributQueryURL=AttributQuery service URL  webpages.interfederation.new.header=Add new Identity Provider  webpages.interfederation.new.vidp=STORK VIDP  webpages.interfederation.new.moaid=MOA-ID IDP +webpages.inderfederation.gateway.entityID=PVP portal EntityID  webpages.moaconfig.save.success=MOA-ID has been successfully saved.  webpages.moaconfig.header=General configuration @@ -490,8 +491,10 @@ validation.sso.logouturl.empty=URL for Single Log-Out Service is necessary.  validation.sso.logouturl.valid=URL for Single Log-Out Service has incorrect format.  validation.interfederation.moaidp.queryurl.valid=URL for AttributQuery Service has incorrect format. -validation.interfederation.moaidp.queryurl.empty=URL for AttributQuery Service is necessary for inbound Single Sign-On interfederation. +validation.interfederation.moaidp.queryurl.empty=URL for AttributQuery Service is necessary.  validation.interfederation.moaidp.metadataurl.publicservice=The domain of Metadata service for that IDP permits private sector only. +validation.interfederation.gateway.entityID.valid=PVP portal EntityID has an incorrect format. +validation.interfederation.gateway.entityID.empty=PVP portal EntityID is necessary.  validation.saml1.providestammzahl=ProvideSourcePIN cannot be combined with applications from private sector. diff --git a/id/ConfigWebTool/src/main/resources/struts.xml b/id/ConfigWebTool/src/main/resources/struts.xml index 68cd85b2f..180877494 100644 --- a/id/ConfigWebTool/src/main/resources/struts.xml +++ b/id/ConfigWebTool/src/main/resources/struts.xml @@ -391,6 +391,7 @@   		<action name="newIDP" method="newIDP" class="at.gv.egovernment.moa.id.configuration.struts.action.InterfederationIDPAction">  			<result name="editOA-VIDP">/jsp/interfederation/vidp.jsp</result>  			<result name="editOA-MOAIDP">/jsp/interfederation/moa_idp.jsp</result> +			<result name="editOA-IDPGATEWAY">/jsp/interfederation/pvpgateway.jsp</result>  			<result name="success" type="chain">main</result>  			<result name="error">/error.jsp</result>  			<result name="reauthentication" type="redirectAction"> @@ -412,6 +413,17 @@  			<interceptor-ref name="OwnStack"/>  		</action> +		<action name="saveIDPGateway" method="saveIDP" class="at.gv.egovernment.moa.id.configuration.struts.action.IDPGatewayAction"> +			<result name="success" type="chain">main</result> +			<result name="error_validation">/jsp/interfederation/pvpgateway.jsp</result> +			<result name="error">/error.jsp</result> +			<result name="reauthentication" type="redirectAction"> +	          <param name="actionName">logout</param> +            <param name="namespace">/</param>  +	     </result> +			<interceptor-ref name="OwnStack"/> +		</action> +		  		<action name="saveVIDP" method="saveIDP" class="at.gv.egovernment.moa.id.configuration.struts.action.VIDPAction">  			<result name="success" type="chain">main</result>  			<result name="error_validation">/jsp/interfederation/vidp.jsp</result> diff --git a/id/ConfigWebTool/src/main/webapp/jsp/interfederation/pvpgateway.jsp b/id/ConfigWebTool/src/main/webapp/jsp/interfederation/pvpgateway.jsp new file mode 100644 index 000000000..ee86c4b91 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/jsp/interfederation/pvpgateway.jsp @@ -0,0 +1,61 @@ +<%@page import="at.gv.egovernment.moa.id.configuration.helper.LanguageHelper"%> + +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="s" uri="/struts-tags" %> + +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +	<head> +		<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> +		<link rel="stylesheet" type="text/css" href="../css/index.css"> +		<title><%=LanguageHelper.getGUIString("title", request) %></title> +		<script type="text/javascript" src="../js/common.js"></script> +		<script src="../js/jquery.js"></script> +	</head> +	 +	<body> +		 + 		<jsp:include page="../snippets/header_userinfos.jsp"></jsp:include> + +		<jsp:include page="../snippets/main_menu.jsp"></jsp:include> +		 +		<div id="information_area"> +			<s:if test="hasActionErrors()"> +   			<div id="error_area"> +   				<label><%=LanguageHelper.getGUIString("error.title", request) %></label> +      			<s:actionerror/> +   			</div> +			</s:if>	 +			 +			<s:if test="authUser.isAdmin()"> +				<div id="list_area">  +					<h2><%=LanguageHelper.getGUIString("webpages.interfederation.header", request) %></h2> +			 +					<s:form namespace="/secure" method="POST" enctype="multipart/form-data"> +					 +						<s:include value="../snippets/OA/generalInformation.jsp"></s:include> + +						<s:include value="../snippets/OA/pvpgateway.jsp"></s:include>	 +										 +						<s:hidden name="formID" value="%{formID}"></s:hidden> +						<s:hidden name="interfederationType" value="%{interfederationType}"></s:hidden> +										 +						<div id="button_area">					 +							<s:submit key="webpages.edit.back" action="cancleandbackIDP"/>								 +							<s:submit key="webpages.edit.save" action="saveIDPGateway"/>						 +							<s:if test="!isNewOA()"> +								<s:submit key="webpages.edit.delete" action="deleteIDP"/> +							</s:if>								 +						</div>					 +			 +					</s:form> +							 +				</div> +			</s:if> +				 +		</div> +		 +		<jsp:include page="../snippets/footer.jsp"></jsp:include> +		 +	</body> +</html>
\ No newline at end of file diff --git a/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/pvpgateway.jsp b/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/pvpgateway.jsp new file mode 100644 index 000000000..8acd725c7 --- /dev/null +++ b/id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/pvpgateway.jsp @@ -0,0 +1,18 @@ +<%@page import="at.gv.egovernment.moa.id.configuration.helper.LanguageHelper"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="s" uri="/struts-tags" %> + +<html> +	<div id="oa_pvp2_area" class="oa_protocol_area"> +		<h4><%=LanguageHelper.getGUIString("webpages.inderfederation.moaid.header", request) %></h4> +												 +		<s:textfield name="pvpGateway.entityID"  +		 						 value="%{pvpGateway.entityID}"  +								 labelposition="left" +								 key="webpages.inderfederation.gateway.entityID" +								 cssClass="textfield_long"> +		</s:textfield> +						 +	</div> +				 +</html>
\ No newline at end of file | 
