From dbd565ec8195117306ae869f4e7b507ff275ed32 Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Wed, 25 Feb 2015 13:45:34 +0100 Subject: added QR Code generation + Base64 Data provising --- .../at/gv/egiz/simpleSigning/StartSignature.java | 101 ++++++++++++--------- 1 file changed, 58 insertions(+), 43 deletions(-) (limited to 'simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java') 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 = ""; + } + + 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()); } } } -- cgit v1.2.3