aboutsummaryrefslogtreecommitdiff
path: root/id/ConfigWebTool
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2014-02-11 08:13:51 +0100
committerThomas Lenz <tlenz@iaik.tugraz.at>2014-02-11 08:13:51 +0100
commitb905c43b4630d290026d03e744413b20f1b73551 (patch)
treecebfc91f43ad1e5eda977d4fc2509859abd7c4da /id/ConfigWebTool
parentf86ebab09aad5971c86dce3827d46a0d41003994 (diff)
downloadmoa-id-spss-b905c43b4630d290026d03e744413b20f1b73551.tar.gz
moa-id-spss-b905c43b4630d290026d03e744413b20f1b73551.tar.bz2
moa-id-spss-b905c43b4630d290026d03e744413b20f1b73551.zip
* add OA specific BKU selection template
* add OA specific send-assertion template * add OA specific applet height and width configuration * add PVP2.x reload checkbox in PVP2.x OA configuration * add new elements to MOA-ID configuration
Diffstat (limited to 'id/ConfigWebTool')
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java4
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java42
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java154
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAPVP2Config.java16
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java112
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java17
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java18
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAFileUploadValidation.java90
-rw-r--r--id/ConfigWebTool/src/main/resources/applicationResources.properties22
-rw-r--r--id/ConfigWebTool/src/main/webapp/css/index.css11
-rw-r--r--id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp1
-rw-r--r--id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp74
12 files changed, 535 insertions, 26 deletions
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java
index 7b02883bb..7a9d91a5d 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java
@@ -51,7 +51,9 @@ public class Constants {
public static final String SESSION_PVP2REQUESTID = "pvp2requestid";
public static final String SESSION_RETURNAREA = "returnarea";
public static final String SESSION_BKUFORMPREVIEW = "bkuformpreview";
- public static final String SESSION_OAUTH20SECRET = "oauth20secret";
+ public static final String SESSION_OAUTH20SECRET = "oauth20secret";
+ public static final String SESSION_BKUSELECTIONTEMPLATE = "bkuSelectionTemplate";
+ public static final String SESSION_SENDASSERTIONTEMPLATE = "sendAssertionTemplate";
public static enum STRUTS_RETURNAREA_VALUES {adminRequestsInit, main, usermanagementInit};
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java
index 49d556ba4..687925c18 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/FormularCustomization.java
@@ -49,7 +49,10 @@ public class FormularCustomization {
private String button_BackGroundColor = null;
private String button_BackGroundColorFocus = null;
private String button_FrontColor = null;
-
+ private String applet_height = null;
+ private String applet_width = null;
+
+
private String appletRedirectTarget = null;
public static List<String> appletRedirectTargetList = null;
@@ -79,6 +82,14 @@ public class FormularCustomization {
onlyMandateAllowed = formcustom.isOnlyMandateLoginAllowed();
}
+ if (formcustom.getAppletHeight() != null) {
+ applet_height = formcustom.getAppletHeight();
+ }
+
+ if (formcustom.getAppletHeight() != null) {
+ applet_width = formcustom.getAppletWidth();
+ }
+
if (MiscUtil.isNotEmpty(formcustom.getAppletRedirectTarget()))
appletRedirectTarget = formcustom.getAppletRedirectTarget();
@@ -351,6 +362,35 @@ public class FormularCustomization {
this.fontTypeListValue = fontTypeListValue;
}
+ /**
+ * @return the applet_height
+ */
+ public String getApplet_height() {
+ return applet_height;
+ }
+
+ /**
+ * @param applet_height the applet_height to set
+ */
+ public void setApplet_height(String applet_height) {
+ this.applet_height = applet_height;
+ }
+
+ /**
+ * @return the applet_width
+ */
+ public String getApplet_width() {
+ return applet_width;
+ }
+
+ /**
+ * @param applet_width the applet_width to set
+ */
+ public void setApplet_width(String applet_width) {
+ this.applet_width = applet_width;
+ }
+
+
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java
index 334124cfd..079e6807e 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAGeneralConfig.java
@@ -22,6 +22,7 @@
*******************************************************************************/
package at.gv.egovernment.moa.id.configuration.data.oa;
+import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -87,6 +88,16 @@ public class OAGeneralConfig {
private Map<String, byte[]> transformations;
+ private List<File> bkuSelectionFileUpload = null;
+ private List<String> bkuSelectionFileUploadContentType = null;
+ private List<String> bkuSelectionFileUploadFileName = new ArrayList<String>();
+
+ private List<File> sendAssertionFileUpload = null;
+ private List<String> sendAssertionFileUploadContentType = null;
+ private List<String> sendAssertionFileUploadFileName = new ArrayList<String>();;
+
+ private boolean deleteBKUTemplate = false;
+ private boolean deleteSendAssertionTemplate = false;
public OAGeneralConfig() {
@@ -225,6 +236,16 @@ public class OAGeneralConfig {
SLTemplates.add(el.getURL());
}
}
+
+ TransformsInfoType bkuSelectTemplate = templates.getBKUSelectionTemplate();
+ if (bkuSelectTemplate != null && MiscUtil.isNotEmpty(bkuSelectTemplate.getFilename())) {
+ bkuSelectionFileUploadFileName.add(bkuSelectTemplate.getFilename());
+ }
+
+ TransformsInfoType sendAssertionTemplate = templates.getSendAssertionTemplate();
+ if (sendAssertionTemplate != null && MiscUtil.isNotEmpty(sendAssertionTemplate.getFilename())) {
+ sendAssertionFileUploadFileName.add(sendAssertionTemplate.getFilename());
+ }
}
if (SLTemplates != null && SLTemplates.size() > 0)
@@ -602,7 +623,140 @@ public class OAGeneralConfig {
*/
public void setUseMandates(boolean useMandates) {
this.useMandates = useMandates;
+ }
+
+
+ /**
+ * @return the bkuSelectionFileUpload
+ */
+ public List<File> getBkuSelectionFileUpload() {
+ return bkuSelectionFileUpload;
+ }
+
+
+ /**
+ * @param bkuSelectionFileUpload the bkuSelectionFileUpload to set
+ */
+ public void setBkuSelectionFileUpload(List<File> bkuSelectionFileUpload) {
+ this.bkuSelectionFileUpload = bkuSelectionFileUpload;
+ }
+
+
+ /**
+ * @return the bkuSelectionFileUploadContentType
+ */
+ public List<String> getBkuSelectionFileUploadContentType() {
+ return bkuSelectionFileUploadContentType;
+ }
+
+
+ /**
+ * @param bkuSelectionFileUploadContentType the bkuSelectionFileUploadContentType to set
+ */
+ public void setBkuSelectionFileUploadContentType(
+ List<String> bkuSelectionFileUploadContentType) {
+ this.bkuSelectionFileUploadContentType = bkuSelectionFileUploadContentType;
+ }
+
+
+ /**
+ * @return the bkuSelectionFileUploadFileName
+ */
+ public List<String> getBkuSelectionFileUploadFileName() {
+ return bkuSelectionFileUploadFileName;
+ }
+
+
+ /**
+ * @param bkuSelectionFileUploadFileName the bkuSelectionFileUploadFileName to set
+ */
+ public void setBkuSelectionFileUploadFileName(
+ List<String> bkuSelectionFileUploadFileName) {
+ this.bkuSelectionFileUploadFileName = bkuSelectionFileUploadFileName;
+ }
+
+
+ /**
+ * @return the sendAssertionFileUpload
+ */
+ public List<File> getSendAssertionFileUpload() {
+ return sendAssertionFileUpload;
+ }
+
+
+ /**
+ * @param sendAssertionFileUpload the sendAssertionFileUpload to set
+ */
+ public void setSendAssertionFileUpload(List<File> sendAssertionFileUpload) {
+ this.sendAssertionFileUpload = sendAssertionFileUpload;
+ }
+
+
+ /**
+ * @return the sendAssertionFileUploadContentType
+ */
+ public List<String> getSendAssertionFileUploadContentType() {
+ return sendAssertionFileUploadContentType;
+ }
+
+
+ /**
+ * @param sendAssertionFileUploadContentType the sendAssertionFileUploadContentType to set
+ */
+ public void setSendAssertionFileUploadContentType(
+ List<String> sendAssertionFileUploadContentType) {
+ this.sendAssertionFileUploadContentType = sendAssertionFileUploadContentType;
+ }
+
+
+ /**
+ * @return the sendAssertionFileUploadFileName
+ */
+ public List<String> getSendAssertionFileUploadFileName() {
+ return sendAssertionFileUploadFileName;
+ }
+
+
+ /**
+ * @param sendAssertionFileUploadFileName the sendAssertionFileUploadFileName to set
+ */
+ public void setSendAssertionFileUploadFileName(
+ List<String> sendAssertionFileUploadFileName) {
+ this.sendAssertionFileUploadFileName = sendAssertionFileUploadFileName;
+ }
+
+
+ /**
+ * @return the deleteBKUTemplate
+ */
+ public boolean isDeleteBKUTemplate() {
+ return deleteBKUTemplate;
+ }
+
+
+ /**
+ * @param deleteBKUTemplate the deleteBKUTemplate to set
+ */
+ public void setDeleteBKUTemplate(boolean deleteBKUTemplate) {
+ this.deleteBKUTemplate = deleteBKUTemplate;
+ }
+
+
+ /**
+ * @return the deleteSendAssertionTemplate
+ */
+ public boolean isDeleteSendAssertionTemplate() {
+ return deleteSendAssertionTemplate;
+ }
+
+
+ /**
+ * @param deleteSendAssertionTemplate the deleteSendAssertionTemplate to set
+ */
+ public void setDeleteSendAssertionTemplate(boolean deleteSendAssertionTemplate) {
+ this.deleteSendAssertionTemplate = deleteSendAssertionTemplate;
}
+
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAPVP2Config.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAPVP2Config.java
index 0a03ac77b..843844e22 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAPVP2Config.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAPVP2Config.java
@@ -42,6 +42,8 @@ public class OAPVP2Config {
private final Logger log = Logger.getLogger(OAPVP2Config.class);
+ private boolean reLoad = false;
+
private String metaDataURL = null;
private String certificateDN = null;
@@ -139,6 +141,20 @@ public class OAPVP2Config {
public void setFileUploadFileName(String fileUploadFileName) {
this.fileUploadFileName = fileUploadFileName;
}
+
+ /**
+ * @return the reLoad
+ */
+ public boolean isReLoad() {
+ return reLoad;
+ }
+
+ /**
+ * @param reLoad the reLoad to set
+ */
+ public void setReLoad(boolean reLoad) {
+ this.reLoad = reLoad;
+ }
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java
index 25c3f24b9..b0de196ca 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditOAAction.java
@@ -34,6 +34,7 @@ import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -63,7 +64,6 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.OASSO;
import at.gv.egovernment.moa.id.commons.db.dao.config.OASTORK;
import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication;
import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplicationType;
-import at.gv.egovernment.moa.id.commons.db.dao.config.STORK;
import at.gv.egovernment.moa.id.commons.db.dao.config.TemplateType;
import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType;
import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType;
@@ -85,6 +85,7 @@ import at.gv.egovernment.moa.id.configuration.helper.MailHelper;
import at.gv.egovernment.moa.id.configuration.validation.FormularCustomizationValitator;
import at.gv.egovernment.moa.id.configuration.validation.TargetValidator;
import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper;
+import at.gv.egovernment.moa.id.configuration.validation.oa.OAFileUploadValidation;
import at.gv.egovernment.moa.id.configuration.validation.oa.OAGeneralConfigValidation;
import at.gv.egovernment.moa.id.configuration.validation.oa.OAOAUTH20ConfigValidation;
import at.gv.egovernment.moa.id.configuration.validation.oa.OAPVP2ConfigValidation;
@@ -126,9 +127,12 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
private OAOAuth20Config oauth20OA = new OAOAuth20Config();
private OASTORKConfig storkOA = new OASTORKConfig();
private FormularCustomization formOA = new FormularCustomization();
-
+
private InputStream stream;
+ private Map<String, byte[]> sendAssertionForm = new HashMap<String, byte[]>();
+ private Map<String, byte[]> bkuSelectionForm = new HashMap<String, byte[]>();
+
// STRUTS actions
public String inital() {
HttpSession session = request.getSession();
@@ -365,6 +369,7 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
OASTORKConfigValidation validator_stork = new OASTORKConfigValidation();
FormularCustomizationValitator validator_form = new FormularCustomizationValitator();
OAOAUTH20ConfigValidation validatior_oauth20 = new OAOAUTH20ConfigValidation();
+ OAFileUploadValidation valiator_fileUpload = new OAFileUploadValidation();
errors.addAll(validatior_general.validate(generalOA, authUser.isAdmin()));
errors.addAll(validatior_pvp2.validate(pvp2OA));
@@ -374,6 +379,37 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
errors.addAll(validator_form.validate(formOA));
errors.addAll(validatior_oauth20.validate(oauth20OA));
+ //validate BKU-selection template
+ List<String> templateError = valiator_fileUpload.validate(generalOA.getBkuSelectionFileUploadFileName()
+ , generalOA.getBkuSelectionFileUpload(), "validation.general.bkuselection", bkuSelectionForm);
+ if (templateError != null && templateError.size() == 0) {
+ if (bkuSelectionForm != null && bkuSelectionForm.size() > 0)
+ session.setAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE, bkuSelectionForm);
+
+ else
+ bkuSelectionForm = (Map<String, byte[]>) session.getAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE);
+
+ } else {
+ errors.addAll(templateError);
+
+ }
+
+ //validate send-assertion template
+ templateError = valiator_fileUpload.validate(generalOA.getSendAssertionFileUploadFileName()
+ , generalOA.getSendAssertionFileUpload(), "validation.general.sendassertion", sendAssertionForm);
+ if (templateError != null && templateError.size() == 0) {
+ if (sendAssertionForm != null && sendAssertionForm.size() > 0)
+ session.setAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE, sendAssertionForm);
+
+ else
+ sendAssertionForm = (Map<String, byte[]>) session.getAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE);
+
+ } else {
+ errors.addAll(templateError);
+
+ }
+
+
// Do not allow SSO in combination with special BKUSelection features
if (ssoOA.isUseSSO() && (formOA.isOnlyMandateAllowed() || !formOA.isShowMandateLoginButton())) {
log.warn("Special BKUSelection features can not be used in combination with SSO");
@@ -432,12 +468,26 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
}
}
}
+
+ //save OA configuration
+ String error = saveOAConfigToDatabase(onlineapplication, newentry);
+ if (MiscUtil.isNotEmpty(error)) {
+ log.warn("OA configuration can not be stored!");
+ addActionError(error);
+
+ formID = Random.nextRandom();
+ session.setAttribute(Constants.SESSION_FORMID, formID);
+ return Constants.STRUTS_ERROR_VALIDATION;
+ }
+ //set metadata reload flag if reload is required
if (pvp2OA.getMetaDataURL() != null) {
try {
if (isMetaDataRefreshRequired
- || !pvp2OA.getMetaDataURL().equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())) {
+ || !pvp2OA.getMetaDataURL().equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())
+ || pvp2OA.getFileUpload() != null
+ || pvp2OA.isReLoad()) {
log.debug("Set PVP2 Metadata refresh flag.");
MOAIDConfiguration moaconfig = ConfigurationDBRead.getMOAIDConfiguration();
@@ -451,16 +501,6 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
}
}
-
- String error = saveOAConfigToDatabase(onlineapplication, newentry);
- if (MiscUtil.isNotEmpty(error)) {
- log.warn("OA configuration can not be stored!");
- addActionError(error);
-
- formID = Random.nextRandom();
- session.setAttribute(Constants.SESSION_FORMID, formID);
- return Constants.STRUTS_ERROR_VALIDATION;
- }
}
Object nextPageAttr = session.getAttribute(Constants.SESSION_RETURNAREA);
@@ -495,9 +535,12 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
} else
addActionMessage(LanguageHelper.getGUIString("webpages.oaconfig.success", generalOA.getIdentifier(), request));
- request.getSession().setAttribute(Constants.SESSION_OAID, null);
- ConfigurationDBUtils.closeSession();
+ //remove session attributes
+ session.setAttribute(Constants.SESSION_OAID, null);
+ session.removeAttribute(Constants.SESSION_BKUSELECTIONTEMPLATE);
+ session.removeAttribute(Constants.SESSION_SENDASSERTIONTEMPLATE);
+ ConfigurationDBUtils.closeSession();
return Constants.STRUTS_SUCCESS;
}
@@ -808,6 +851,7 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
}
}
+ //store BKU-URLs
BKUURLS bkuruls = new BKUURLS();
authoa.setBKUURLS(bkuruls);
if (authUser.isAdmin()) {
@@ -822,6 +866,41 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
authoa.setTemplates(templates);
}
+ //store BKU-selection and send-assertion templates
+ if (authUser.isAdmin()) {
+
+ if(generalOA.isDeleteBKUTemplate())
+ templates.setBKUSelectionTemplate(null);
+
+ if (generalOA.isDeleteSendAssertionTemplate())
+ templates.setSendAssertionTemplate(null);
+
+
+ if (bkuSelectionForm != null && bkuSelectionForm.size() > 0) {
+ TransformsInfoType template = new TransformsInfoType();
+
+ Iterator<String> interator = bkuSelectionForm.keySet().iterator();
+ template.setFilename(interator.next());
+ template.setTransformation(bkuSelectionForm.get(
+ template.getFilename()));
+
+ templates.setBKUSelectionTemplate(template);
+ }
+
+ if (sendAssertionForm != null && sendAssertionForm.size() > 0) {
+ TransformsInfoType template = new TransformsInfoType();
+
+ Iterator<String> interator = sendAssertionForm.keySet().iterator();
+ template.setFilename(interator.next());
+ template.setTransformation(sendAssertionForm.get(
+ template.getFilename()));
+
+ templates.setSendAssertionTemplate(template);
+ }
+ }
+
+
+ //store BKU-selection customization
BKUSelectionCustomizationType bkuselectioncustom = templates.getBKUSelectionCustomization();
if (bkuselectioncustom == null) {
bkuselectioncustom = new BKUSelectionCustomizationType();
@@ -887,6 +966,9 @@ public class EditOAAction extends ActionSupport implements ServletRequestAware,
bkuselectioncustom.setFontType(formOA.getFontType());
+ bkuselectioncustom.setAppletHeight(formOA.getApplet_height());
+ bkuselectioncustom.setAppletWidth(formOA.getApplet_width());
+
}
// set default transformation if it is empty
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java
index a488d919d..ee9b38f74 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/IndexAction.java
@@ -138,7 +138,19 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,
public String authenticate() {
- String key = null;
+ ConfigurationProvider config;
+ try {
+ config = ConfigurationProvider.getInstance();
+ pvp2LoginActiv = config.isPVP2LoginActive();
+
+ } catch (ConfigurationException e1) {
+ log.warn("An internal error occurs.", e1);
+ pvp2LoginActiv = false;
+ }
+
+
+
+ String key = null;
if (MiscUtil.isNotEmpty(username)) {
if (ValidationHelper.containsPotentialCSSCharacter(username, false)) {
@@ -247,7 +259,8 @@ public class IndexAction extends ActionSupport implements ServletRequestAware,
try {
ConfigurationProvider config = ConfigurationProvider.getInstance();
-
+ pvp2LoginActiv = config.isPVP2LoginActive();
+
//Decode with HttpPost Binding
HTTPPostDecoder decode = new HTTPPostDecoder(new BasicParserPool());
BasicSAMLMessageContext<Response, ?, ?> messageContext = new BasicSAMLMessageContext<Response, SAMLObject, SAMLObject>();
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java
index 6a1eddb14..758aa7dc7 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/FormularCustomizationValitator.java
@@ -148,6 +148,24 @@ public class FormularCustomizationValitator {
}
}
+ check = form.getApplet_height();
+ if (MiscUtil.isNotEmpty(check)) {
+ if (!ValidationHelper.validateNumber(check)) {
+ log.warn("Applet height "+ check + " is no valid number");
+ errors.add(LanguageHelper.getErrorString("validation.general.form.applet.height",
+ new Object[] {ValidationHelper.getPotentialCSSCharacter(true)} ));
+ }
+ }
+
+ check = form.getApplet_width();
+ if (MiscUtil.isNotEmpty(check)) {
+ if (!ValidationHelper.validateNumber(check)) {
+ log.warn("Applet width "+ check + " is no valid number");
+ errors.add(LanguageHelper.getErrorString("validation.general.form.applet.width",
+ new Object[] {ValidationHelper.getPotentialCSSCharacter(true)} ));
+ }
+ }
+
return errors;
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAFileUploadValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAFileUploadValidation.java
new file mode 100644
index 000000000..8887aeaad
--- /dev/null
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAFileUploadValidation.java
@@ -0,0 +1,90 @@
+/*
+ * 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.validation.oa;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.log4j.Logger;
+
+import at.gv.egovernment.moa.id.configuration.data.oa.OAGeneralConfig;
+import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper;
+import at.gv.egovernment.moa.id.configuration.validation.ValidationHelper;
+import at.gv.egovernment.moa.util.Base64Utils;
+import at.gv.egovernment.moa.util.MiscUtil;
+
+/**
+ * @author tlenz
+ *
+ */
+public class OAFileUploadValidation {
+
+ private static final Logger log = Logger.getLogger(OASSOConfigValidation.class);
+
+ public List<String> validate(List<String> fileName, List<File> files, String errorMsgPreFix, Map<String, byte[]> output) {
+
+ List<String> errors = new ArrayList<String>();
+
+ if (fileName != null) {
+
+ if (fileName.size() > 1) {
+ log.info("Only one BKU-selecten template file can be stored");
+ errors.add(LanguageHelper.getErrorString(errorMsgPreFix + ".file.selected"));
+ }
+
+ for (int i=0; i<fileName.size(); i++) {
+ String filename = fileName.get(i);
+
+ if (MiscUtil.isNotEmpty(filename)) {
+ if (ValidationHelper.containsPotentialCSSCharacter(filename, false)) {
+ log.info("Filename is not valid");
+ errors.add(LanguageHelper.getErrorString(errorMsgPreFix + ".filename.valid"));
+
+ } else {
+ try {
+ File file = files.get(i);
+ InputStream stream = new FileInputStream(file);
+ output.put(filename, IOUtils.toByteArray(stream));
+ stream.close();
+
+ } catch (IOException e) {
+ log.info("File with FileName "
+ + filename +" can not be loaded." , e);
+ errors.add(LanguageHelper.getErrorString(errorMsgPreFix + ".file.valid",
+ new Object[] {filename} ));
+ }
+ }
+ }
+ }
+ }
+
+ return errors;
+ }
+}
diff --git a/id/ConfigWebTool/src/main/resources/applicationResources.properties b/id/ConfigWebTool/src/main/resources/applicationResources.properties
index 0da6b1ec8..0b59e6a24 100644
--- a/id/ConfigWebTool/src/main/resources/applicationResources.properties
+++ b/id/ConfigWebTool/src/main/resources/applicationResources.properties
@@ -168,6 +168,15 @@ webpages.oaconfig.general.bku.legacy=SecurityLayerTemplates (Legacy Request)
webpages.oaconfig.general.bku.sltemplate.first=1. SecurityLayer Template
webpages.oaconfig.general.bku.sltemplate.second=2. SecurityLayer Template
webpages.oaconfig.general.bku.sltemplate.third=3. SecurityLayer Template
+
+webpages.oaconfig.general.bku.delete=L\u00F6schen
+webpages.oaconfig.general.bku.bkuselection.header=BKU-Selection Template
+webpages.oaconfig.general.bku.bkuselection.filename=Dateiname
+webpages.oaconfig.general.bku.bkuselection.upload=Neues Template hochladen
+webpages.oaconfig.general.bku.sendassertion.header=Send-Assertion Template
+webpages.oaconfig.general.bku.sendassertion.filename=Dateiname
+webpages.oaconfig.general.bku.sendassertion.upload=Neues Template hochladen
+
webpages.oaconfig.general.identification=Eindeutiger Identifikatior (PublicURLPrefix)
webpages.oaconfig.general.mandate.header=Vollmachten
webpages.oaconfig.general.mandate.profiles=Profile
@@ -220,6 +229,8 @@ webpages.oaconfig.general.BKUSelection.header.button.front=Vordergrundfarbe der
webpages.oaconfig.general.BKUSelection.redirectTarget=Targetparameter
webpages.oaconfig.general.BKUSelection.fonttype=Formularschrifttyp
webpages.oaconfig.general.BKUSelection.fonttype.list=Formularschrifttypen
+webpages.oaconfig.general.BKUSelection.header.applet.height=Appleth\u00F6he
+webpages.oaconfig.general.BKUSelection.header.applet.width=Appletbreite
webpages.oaconfig.sso.header=Single Sign-On
webpages.oaconfig.sso.singlelogouturl=Single Log-Out URL
@@ -250,6 +261,7 @@ webpages.oaconfig.saml1.useCondition=Usecondition
webpages.oaconfig.saml1.conditionLength=ConditionLength
webpages.oaconfig.protocols.pvp2.header=PVP2.x Konfiguration
+webpages.oaconfig.pvp2.reload=PVP2.x konfiguration neu laden
webpages.oaconfig.pvp2.metaDataURL=URL zu den Metadaten
webpages.oaconfig.pvp2.certifcate=Zertifikat hochladen
webpages.oaconfig.pvp2.certifcate.info=Infos zum Zertifikat
@@ -381,6 +393,14 @@ validation.general.oaidentifier.empty=Es wurde kein eindeutiger Identifier f\u00
validation.general.oaidentifier.valid=Der eindeutige Identifier f\u00FCr die Online-Applikation ist keine g\u00FCltige URL.
validation.general.oaidentifier.notunique=Der gew\u00E4hlte eindeutige Identifier ist bereits vorhanden. Eine Eintragung der Online-Applikation ist nicht m\u00F6glich.
+validation.general.bkuselection.filename.valid=Der Dateiname des BKU-Selektion Templates enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0}
+validation.general.bkuselection.file.valid=Das BKU-Selektion Templates konnte nicht geladen werden.
+validation.general.bkuselection.file.selected=Es kann nur EIN BKU-Selektion Template angegeben werden.
+validation.general.sendassertion.filename.valid=Der Dateiname des Send-Assertion Templates enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0}
+validation.general.sendassertion.file.valid=Das Send-Assertion Templates konnte nicht geladen werden.
+validation.general.sendassertion.file.selected=Es kann nur EIN Send-Assertion Template angegeben werden.
+
+
validation.stork.cpeps.cc=CPEPS L\u00E4ndercode folgt nicht ISO 3166-2
validation.stork.cpeps.empty=CPEPS Konfiguration ist unvollst\u00E4ndig
validation.stork.cpeps.url=CPEPS URL ist ung\u00FCltig
@@ -412,3 +432,5 @@ validation.general.form.button.color.back=Die Hintergrundfarbe der BKU-Auswahlbu
validation.general.form.button.color.front=Die Vordergrundfarbe der BKU-Auswahlbuttons enth\\u00E4lt keinen g\\u00FCltigen Hexadezimalwert. (z.B. \\\#FFFFFF)
validation.general.form.appletredirecttarget=Der RedirectTarget beinhaltet einen ung\\u00FCltiten Wert.
validation.general.form.fonttype=Der BKU-Auswahl Schrifttyp enth\u00E4lt nicht erlaubte Zeichen. Folgende Zeichen sind nicht erlaubt\: {0}
+validation.general.form.applet.width=Die Appleth\u00F6he ist keine g\\u00FCltige Zahl.
+validation.general.form.applet.height=Die Appletbreite ist keine g\\u00FCltige Zahl. \ No newline at end of file
diff --git a/id/ConfigWebTool/src/main/webapp/css/index.css b/id/ConfigWebTool/src/main/webapp/css/index.css
index 79f8b4e72..e3d2763c2 100644
--- a/id/ConfigWebTool/src/main/webapp/css/index.css
+++ b/id/ConfigWebTool/src/main/webapp/css/index.css
@@ -168,8 +168,15 @@ body {
.oa_protocol_area {
clear: both;
margin-left: 25px;
- padding-top: 20px;
- display: none;
+ padding-top: 20px;
+}
+
+.hidden {
+ display: none;
+}
+
+.floatClass > .wwgrp {
+ clear: none;
}
.oa_protocol_area >h4 {
diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp
index 2e0e5ea2a..1bb429afa 100644
--- a/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp
+++ b/id/ConfigWebTool/src/main/webapp/jsp/editMOAConfig.jsp
@@ -399,6 +399,7 @@
<s:file name="moaconfig.fileUpload" key="webpages.moaconfig.sl.transormations.upload" cssClass="textfield_long"></s:file>
</div>
</s:iterator>
+
<s:if test="moaconfig.fileUploadFileName.size() == 0">
<div id="pvp2_certificate_upload">
<s:file name="moaconfig.fileUpload" key="webpages.moaconfig.sl.transormations.upload" cssClass="textfield_long"></s:file>
diff --git a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp
index 4e8dfc259..fadf528d1 100644
--- a/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp
+++ b/id/ConfigWebTool/src/main/webapp/jsp/editOAGeneral.jsp
@@ -240,6 +240,49 @@
cssClass="textfield_long">
</s:textfield>
</div>
+
+ <div class="oa_protocol_area">
+ <h4><%=LanguageHelper.getGUIString("webpages.oaconfig.general.bku.bkuselection.header", request) %></h4>
+ <s:iterator value="%{generalOA.bkuSelectionFileUploadFileName}" var="fileNameBKU">
+ <div class="floatClass">
+ <s:label key="webpages.oaconfig.general.bku.bkuselection.filename" value="%{fileNameBKU}"/>
+ <s:checkbox key="webpages.oaconfig.general.bku.delete"
+ labelposition="left"
+ cssClass="checkbox"
+ name="generalOA.deleteBKUTemplate"></s:checkbox>
+ </div>
+ <div id="pvp2_certificate_upload">
+ <s:file name="generalOA.bkuSelectionFileUpload" key="webpages.oaconfig.general.bku.bkuselection.upload" cssClass="textfield_long"></s:file>
+ </div>
+ </s:iterator>
+ <s:if test="generalOA.bkuSelectionFileUploadFileName.size() == 0">
+ <div id="pvp2_certificate_upload">
+ <s:file name="generalOA.bkuSelectionFileUpload" key="webpages.oaconfig.general.bku.bkuselection.upload" cssClass="textfield_long"></s:file>
+ </div>
+ </s:if>
+ </div>
+ <div class="oa_protocol_area">
+ <h4><%=LanguageHelper.getGUIString("webpages.oaconfig.general.bku.sendassertion.header", request) %></h4>
+ <s:iterator value="%{generalOA.sendAssertionFileUploadFileName}" var="fileNameBKU">
+ <div class="floatClass">
+ <s:label key="webpages.oaconfig.general.bku.sendassertion.filename"
+ value="%{fileNameBKU}"/>
+ <s:checkbox key="webpages.oaconfig.general.bku.delete"
+ labelposition="left"
+ cssClass="checkbox"
+ name="generalOA.deleteSendAssertionTemplate"></s:checkbox>
+ </div>
+ <div id="pvp2_certificate_upload">
+ <s:file name="generalOA.sendAssertionFileUpload" key="webpages.oaconfig.general.bku.sendassertion.upload" cssClass="textfield_long"></s:file>
+ </div>
+ </s:iterator>
+ <s:if test="generalOA.sendAssertionFileUploadFileName.size() == 0">
+ <div id="pvp2_certificate_upload">
+ <s:file name="generalOA.sendAssertionFileUpload" key="webpages.oaconfig.general.bku.sendassertion.upload" cssClass="textfield_long"></s:file>
+ </div>
+ </s:if>
+ </div>
+
</div>
</s:if>
@@ -271,7 +314,7 @@
</div>
<div class="oa_config_block">
- <p><strong><%=LanguageHelper.getGUIString("webpages.oaconfig.sso.header", request) %></strong></p>
+ <h3><%=LanguageHelper.getGUIString("webpages.oaconfig.sso.header", request) %></h3>
<s:checkbox name="ssoOA.useSSO"
value="%{ssoOA.useSSO}"
@@ -356,7 +399,7 @@
<%=LanguageHelper.getGUIString("webpages.oaconfig.menu.oauth20.hidden", request) %>
</button>
- <div id="oa_saml1_area" class="oa_protocol_area">
+ <div id="oa_saml1_area" class="oa_protocol_area hidden">
<h4><%=LanguageHelper.getGUIString("webpages.oaconfig.protocols.saml1.header", request) %></h4>
<s:if test="authUser.isAdmin()">
@@ -416,9 +459,14 @@
</div>
- <div id="oa_pvp2_area" class="oa_protocol_area">
+ <div id="oa_pvp2_area" class="oa_protocol_area hidden">
<h4><%=LanguageHelper.getGUIString("webpages.oaconfig.protocols.pvp2.header", request) %></h4>
+ <s:checkbox key="webpages.oaconfig.pvp2.reload"
+ labelposition="left"
+ cssClass="checkbox"
+ name="pvp2OA.reLoad"></s:checkbox>
+
<s:textfield name="pvp2OA.metaDataURL"
value="%{pvp2OA.metaDataURL}"
labelposition="left"
@@ -433,7 +481,7 @@
</div>
</div>
- <div id="oa_oauth20_area" class="oa_protocol_area">
+ <div id="oa_oauth20_area" class="oa_protocol_area hidden">
<h4><%=LanguageHelper.getGUIString("webpages.oaconfig.protocols.oauth20.header", request) %></h4>
<s:label key="webpages.oaconfig.oauth20.clientId" value="%{oauth20OA.clientId}"/>
@@ -483,7 +531,7 @@
<%=LanguageHelper.getGUIString("webpages.oaconfig.general.BKUSelection.button.hidden", request) %>
</button>
- <div id="formcustom_area" class="oa_protocol_area">
+ <div id="formcustom_area" class="oa_protocol_area hidden">
<h4><%=LanguageHelper.getGUIString("webpages.oaconfig.general.BKUSelection.header", request) %></h4>
<div id="formCustomValues">
@@ -562,6 +610,22 @@
name="formOA.appletRedirectTarget">
</s:select>
+ <s:textfield name="formOA.applet_height"
+ value="%{formOA.applet_height}"
+ labelposition="left"
+ key="webpages.oaconfig.general.BKUSelection.header.applet.height"
+ cssClass="textfield_middle"
+ id="HEADER_HEIGHT">
+ </s:textfield>
+
+ <s:textfield name="formOA.applet_width"
+ value="%{formOA.applet_width}"
+ labelposition="left"
+ key="webpages.oaconfig.general.BKUSelection.header.applet.width"
+ cssClass="textfield_middle"
+ id="HEADER_WIDTH">
+ </s:textfield>
+
<s:select list="formOA.fontTypeList"
key="webpages.oaconfig.general.BKUSelection.fonttype.list"
labelposition="left"