aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2014-10-22 14:43:55 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2014-10-22 14:43:55 +0200
commit79867a72c06e4230428d3755509f1bf7b50f9914 (patch)
treed8e5e4c1033f853ba0fd9ae0a3b98157dbd2f1cd
parent5a5ab5c36c94157e431a6128e3189db314626859 (diff)
downloadmoa-id-spss-79867a72c06e4230428d3755509f1bf7b50f9914.tar.gz
moa-id-spss-79867a72c06e4230428d3755509f1bf7b50f9914.tar.bz2
moa-id-spss-79867a72c06e4230428d3755509f1bf7b50f9914.zip
add PVP gateway configuration into configWebTool
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/PVPGatewayInterfederationConfig.java134
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IDPGatewayAction.java56
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/InterfederationIDPAction.java13
-rw-r--r--id/ConfigWebTool/src/main/resources/applicationResources_de.properties7
-rw-r--r--id/ConfigWebTool/src/main/resources/applicationResources_en.properties5
-rw-r--r--id/ConfigWebTool/src/main/resources/struts.xml12
-rw-r--r--id/ConfigWebTool/src/main/webapp/jsp/interfederation/pvpgateway.jsp61
-rw-r--r--id/ConfigWebTool/src/main/webapp/jsp/snippets/OA/pvpgateway.jsp18
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