aboutsummaryrefslogtreecommitdiff
path: root/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java
diff options
context:
space:
mode:
Diffstat (limited to 'simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java')
-rw-r--r--simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java101
1 files changed, 58 insertions, 43 deletions
diff --git a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java
index e018499..5c3927e 100644
--- a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java
+++ b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java
@@ -10,6 +10,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.codec.binary.Base64;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@@ -40,6 +41,7 @@ public class StartSignature extends HttpServlet {
private static final String PARAM_TARGETURL = "TARGETURL";
private static final String PARAM_RESIZE = "RESIZE";
+ private static final String PARAM_QRCODE = "QRCODE";
private static final String PARAM_NEW = "NEW";
private static final String PARAM_NEW_V = "1";
@@ -80,7 +82,7 @@ public class StartSignature extends HttpServlet {
FileItemStream fileItem = iter.next();
if ("pdf-file".equals(fileItem.getFieldName())) {
uploadForm = IOUtils.toByteArray(fileItem.openStream());
- if(uploadForm.length > 5) {
+ if (uploadForm.length > 5) {
SessionHelper.setDocument(req, uploadForm);
} else {
logger.info("No Document uploaded");
@@ -133,6 +135,7 @@ public class StartSignature extends HttpServlet {
String eventId = req.getParameter(PARAM_EVENTID);
String type = req.getParameter(PARAM_TYPE);
String targetUrl = req.getParameter(PARAM_TARGETURL);
+ String qrCodeData = req.getParameter(PARAM_QRCODE);
// Step 1. Setup Parameters
if (type != null) {
@@ -143,6 +146,14 @@ public class StartSignature extends HttpServlet {
+ "]: setting Type to: " + type);
}
+ if (qrCodeData != null) {
+ // If we have a type set it
+ SessionHelper.setQRCodeContent(req, qrCodeData);
+
+ logger.info("[" + req.getSession().getId()
+ + "]: setting QR Code Data to: " + qrCodeData);
+ }
+
if (eventId != null) {
SessionHelper.setEventID(req, eventId);
@@ -169,14 +180,15 @@ public class StartSignature extends HttpServlet {
SessionHelper.setContent(req, content);
logger.info("[" + req.getSession().getId()
+ "]: setting Content");
-
-
+
if (SessionHelper.getType(req).equals(Type.TEXT)) {
SessionHelper.setDocument(req,
PDFHelper.createPDFDocument(content));
+ } else if (SessionHelper.getType(req).equals(Type.B64)) {
+ SessionHelper
+ .setDocument(req, Base64.decodeBase64(content));
}
-
}
if ((SessionHelper.getContent(req) == null && SessionHelper
@@ -218,19 +230,22 @@ public class StartSignature extends HttpServlet {
bkusel = FileUtils.readFileToString(FileUtils
.toFile(PDFASJsServlet.class
.getResource("/html/submit")));
-
- if (SessionHelper.getType(req) != null &&
- SessionHelper.getType(req).equals(Type.PDF)) {
- bkusel = bkusel.replace("##REPLACE##NAME##", "Dokument signieren");
+
+ if (SessionHelper.getType(req) != null
+ && SessionHelper.getType(req).equals(Type.PDF)) {
+ bkusel = bkusel.replace("##REPLACE##NAME##",
+ "Dokument signieren");
} else {
- bkusel = bkusel.replace("##REPLACE##NAME##", "Text signieren");
+ bkusel = bkusel.replace("##REPLACE##NAME##",
+ "Text signieren");
}
-
+
}
form = form.replace("##REPLACE##BKUSEL##", bkusel);
form = form.replace("##ACTIONURL##",
- Configuration.getPublicUrl() + "/Start;jsessionid=" + req.getSession().getId());
+ Configuration.getPublicUrl() + "/Start;jsessionid="
+ + req.getSession().getId());
String resize = FileUtils.readFileToString(FileUtils
.toFile(PDFASJsServlet.class
@@ -257,20 +272,21 @@ public class StartSignature extends HttpServlet {
}
// Resize Iframe for BKU communication
-
+
String resizeDone = req.getParameter(PARAM_RESIZE);
-
- if(resizeDone != null && resizeDone.equals("1")) {
+
+ if (resizeDone != null && resizeDone.equals("1")) {
SessionHelper.setResizeDone(req);
}
-
- if(!SessionHelper.getResizeDone(req)) {
+
+ if (!SessionHelper.getResizeDone(req)) {
String form = FileUtils.readFileToString(FileUtils
.toFile(PDFASJsServlet.class
.getResource("/html/resize_form.html")));
form = form.replace("##ACTIONURL##",
- Configuration.getPublicUrl() + "/Start;jsessionid=" + req.getSession().getId());
-
+ Configuration.getPublicUrl() + "/Start;jsessionid="
+ + req.getSession().getId());
+
String resize = FileUtils.readFileToString(FileUtils
.toFile(PDFASJsServlet.class
.getResource("/js/resizing_response.js")));
@@ -280,26 +296,20 @@ public class StartSignature extends HttpServlet {
resize = resize.replace("##REPLACE##TARGETURL##",
SessionHelper.getTargetURL(req));
-
// Handy Signatur: style="width: 255px; height: 250px;"
-
+
// Online BKU: width: 225px; height: 225px;
-
- if(SessionHelper.getConnector(req).equals("mobilebku")) {
- resize = resize.replace("##REPLACE##HEIGHT##",
- "255");
-
- resize = resize.replace("##REPLACE##WIDTH##",
- "250");
+
+ if (SessionHelper.getConnector(req).equals("mobilebku")) {
+ resize = resize.replace("##REPLACE##HEIGHT##", "255");
+
+ resize = resize.replace("##REPLACE##WIDTH##", "250");
} else {
- resize = resize.replace("##REPLACE##HEIGHT##",
- "225");
-
- resize = resize.replace("##REPLACE##WIDTH##",
- "225");
+ resize = resize.replace("##REPLACE##HEIGHT##", "225");
+
+ resize = resize.replace("##REPLACE##WIDTH##", "225");
}
-
-
+
String postman = FileUtils.readFileToString(FileUtils
.toFile(PDFASJsServlet.class
.getResource("/js/postman.js")));
@@ -307,15 +317,15 @@ public class StartSignature extends HttpServlet {
String script_txt = postman + resize;
form = form.replace("##REPLACE##SCRIPT##", script_txt);
-
+
resp.setContentType("text/html");
OutputStream os = resp.getOutputStream();
os.write(form.getBytes());
os.close();
-
+
return;
}
-
+
// Step 4. Start Signature Process with PDF-AS
String template = FileUtils.readFileToString(FileUtils
@@ -358,7 +368,15 @@ public class StartSignature extends HttpServlet {
}
}
}
-
+ String entry = "";
+ if (SessionHelper.getQRCodeContent(req) != null) {
+ entry = "<input type=\"hidden\" name=\"qrcontent\" value=\""
+ + SessionHelper.getQRCodeContent(req) + "\">";
+ }
+
+ template = template.replace("##ADDITIONAL##",
+ entry);
+
template = template.replace("##PDFASURL##",
Configuration.getPDFAsLocation() + "/Sign");
template = template.replace("##INVOKEURL##",
@@ -379,11 +397,8 @@ public class StartSignature extends HttpServlet {
} catch (Throwable e) {
logger.error("[" + req.getSession().getId()
+ "]: Something went wrong", e);
- PDFHelper.toError(
- req,
- resp,
- "Something went wrong",
- e.getMessage());
+ PDFHelper
+ .toError(req, resp, "Something went wrong", e.getMessage());
}
}
}