aboutsummaryrefslogtreecommitdiff
path: root/id
diff options
context:
space:
mode:
Diffstat (limited to 'id')
-rw-r--r--id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/helper/GUIDataParser.java67
-rw-r--r--id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesBKUSelectionTask.java32
2 files changed, 84 insertions, 15 deletions
diff --git a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/helper/GUIDataParser.java b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/helper/GUIDataParser.java
new file mode 100644
index 000000000..be47a404f
--- /dev/null
+++ b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/helper/GUIDataParser.java
@@ -0,0 +1,67 @@
+/*
+ * 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.config.webgui.helper;
+
+import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
+import at.gv.egovernment.moa.util.Base64Utils;
+import at.gv.egovernment.moa.util.MiscUtil;
+
+/**
+ * @author tlenz
+ *
+ */
+public class GUIDataParser {
+ private static final Logger log = LoggerFactory.getLogger(GUIDataParser.class);
+ /**
+ * Extract the BASE64 content from GUI upload
+ *
+ * @param guiUpload {String}, which is committed by GUI
+ * @return Base64 encoded data or null if data is not parseable or empty
+ */
+ public static String getBase64ContentFromGUIUpload(String guiUpload) {
+ if (MiscUtil.isNotEmpty(guiUpload) &&
+ !guiUpload.equals(MOAIDConfigurationConstants.WEBGUI_EMPTY_ELEMENT) ) {
+ String[] bkuSelectTemplateSplitted = guiUpload.split(",");
+ String base64 = null;
+ if (bkuSelectTemplateSplitted.length > 1)
+ base64 = bkuSelectTemplateSplitted[1];
+ else
+ base64 = guiUpload;
+
+ try {
+ if (Base64Utils.decode(base64, false) == null)
+ return base64;
+
+ } catch (IOException e) {
+ log.debug("GUI upoad is not decodeable.", e);
+
+ }
+ }
+ return null;
+ }
+}
diff --git a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesBKUSelectionTask.java b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesBKUSelectionTask.java
index 7ed9751cb..b6561ccf4 100644
--- a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesBKUSelectionTask.java
+++ b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesBKUSelectionTask.java
@@ -29,7 +29,6 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
-import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,6 +37,7 @@ import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
import at.gv.egovernment.moa.id.commons.validation.ValidationHelper;
import at.gv.egovernment.moa.id.config.webgui.exception.ConfigurationTaskValidationException;
import at.gv.egovernment.moa.id.config.webgui.exception.ValidationObjectIdentifier;
+import at.gv.egovernment.moa.id.config.webgui.helper.GUIDataParser;
import at.gv.egovernment.moa.id.config.webgui.helper.LanguageHelper;
import at.gv.egovernment.moa.id.config.webgui.validation.task.AbstractTaskValidator;
import at.gv.egovernment.moa.id.config.webgui.validation.task.ITaskValidator;
@@ -94,6 +94,18 @@ public class ServicesBKUSelectionTask extends AbstractTaskValidator implements I
}
+ String bkuSelectionFileUpload = input.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA);
+ String bkuSelectionFile = GUIDataParser.getBase64ContentFromGUIUpload(bkuSelectionFileUpload);
+ if (bkuSelectionFile != null)
+ newConfigValues.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA,
+ bkuSelectionFile);
+
+ String sendAssertionTemplateUpload = input.get(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA);
+ String sendAssertionTemplate = GUIDataParser.getBase64ContentFromGUIUpload(sendAssertionTemplateUpload);
+ if (sendAssertionTemplate != null)
+ newConfigValues.put(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA,
+ sendAssertionTemplate);
+
if (newConfigValues.isEmpty())
return null;
else
@@ -148,13 +160,8 @@ public class ServicesBKUSelectionTask extends AbstractTaskValidator implements I
}
- String[] bkuSelectTemplateSplitted = bkuSelectionFileUpload.split(",");
- if (bkuSelectTemplateSplitted.length > 1)
- bkuSelectTemplate = bkuSelectTemplateSplitted[1];
- else
- bkuSelectTemplate = bkuSelectionFileUpload;
-
- if (!Base64.isBase64(bkuSelectTemplate)) {
+ bkuSelectTemplate = GUIDataParser.getBase64ContentFromGUIUpload(bkuSelectionFileUpload);
+ if (bkuSelectTemplate == null) {
log.info("BKU Selection Template is not decodeable.");
errors.add(new ValidationObjectIdentifier(
MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_BKUSELECTION_DATA,
@@ -202,13 +209,8 @@ public class ServicesBKUSelectionTask extends AbstractTaskValidator implements I
}
- String[] sendAssertionTemplateSplitted = sendAssertionFileUpload.split(",");
- if (sendAssertionTemplateSplitted.length > 1)
- sendAssertionTemplate = sendAssertionTemplateSplitted[1];
- else
- sendAssertionTemplate = sendAssertionFileUpload;
-
- if (!Base64.isBase64(sendAssertionTemplate)) {
+ sendAssertionTemplate = GUIDataParser.getBase64ContentFromGUIUpload(sendAssertionFileUpload);
+ if (sendAssertionTemplate == null) {
log.info("Send Assertion Template is not decodeable.");
errors.add(new ValidationObjectIdentifier(
MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_SENDASSERTION_DATA,