From 34bda0835fa7ea1da4f200a757cdb7338566e777 Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Thu, 14 Aug 2014 13:57:35 +0200 Subject: Changes --- .../at/gv/egiz/simpleSigning/ErrorSignature.java | 9 +++ .../at/gv/egiz/simpleSigning/JQueryServlet.java | 5 -- .../at/gv/egiz/simpleSigning/StartSignature.java | 67 +++++++++++++++++++++- .../egiz/simpleSigning/helper/SessionHelper.java | 17 ++++++ 4 files changed, 92 insertions(+), 6 deletions(-) (limited to 'simpleSigning/src/main/java') diff --git a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/ErrorSignature.java b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/ErrorSignature.java index 446d1c1..c8128b0 100644 --- a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/ErrorSignature.java +++ b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/ErrorSignature.java @@ -2,6 +2,7 @@ package at.gv.egiz.simpleSigning; import java.io.IOException; import java.io.OutputStream; +import java.net.URLDecoder; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; @@ -56,6 +57,10 @@ public class ErrorSignature extends HttpServlet { } } + if(error != null) { + error = URLDecoder.decode(error, "UTF-8"); + } + if (error == null) { error = "UNKNOWN ERROR"; } @@ -71,6 +76,10 @@ public class ErrorSignature extends HttpServlet { } } + if(cause != null) { + cause = URLDecoder.decode(cause, "UTF-8"); + } + if (cause == null) { cause = "UNKNOWN CAUSE"; } diff --git a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/JQueryServlet.java b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/JQueryServlet.java index bbed2fa..87693b5 100644 --- a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/JQueryServlet.java +++ b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/JQueryServlet.java @@ -35,14 +35,9 @@ public class JQueryServlet extends HttpServlet { .toFile(PDFASJsServlet.class .getResource("/js/jquery.js"))); - String postMessage = FileUtils.readFileToString(FileUtils - .toFile(PDFASJsServlet.class - .getResource("/js/jquery.ba-postmessage.min.js"))); - resp.setContentType("text/javascript"); OutputStream os = resp.getOutputStream(); os.write(jquery.getBytes()); - os.write(postMessage.getBytes()); os.close(); } } 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 09a9f6d..b153c30 100644 --- a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java +++ b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/StartSignature.java @@ -42,6 +42,7 @@ public class StartSignature extends HttpServlet { private static final String PARAM_EVENTID = "EVENTID"; private static final String PARAM_TYPE = "TYPE"; private static final String PARAM_TARGETURL = "TARGETURL"; + private static final String PARAM_RESIZE = "RESIZE"; private static final String PARAM_NEW = "NEW"; private static final String PARAM_NEW_V = "1"; @@ -83,7 +84,11 @@ public class StartSignature extends HttpServlet { FileItemStream fileItem = iter.next(); if ("pdf-file".equals(fileItem.getFieldName())) { uploadForm = IOUtils.toByteArray(fileItem.openStream()); - SessionHelper.setDocument(req, uploadForm); + if(uploadForm.length > 5) { + SessionHelper.setDocument(req, uploadForm); + } else { + logger.info("No Document uploaded"); + } } else if ("txtContent".equals(fileItem.getFieldName())) { String txtContent = IOUtils.toString(fileItem .openStream()); @@ -247,6 +252,66 @@ public class StartSignature extends HttpServlet { return; } + // Resize Iframe for BKU communication + + String resizeDone = req.getParameter(PARAM_RESIZE); + + if(resizeDone != null && resizeDone.equals("1")) { + SessionHelper.setResizeDone(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()); + + String resize = FileUtils.readFileToString(FileUtils + .toFile(PDFASJsServlet.class + .getResource("/js/resizing_response.js"))); + + resize = resize.replace("##REPLACE##EVENTID##", + SessionHelper.getEventID(req)); + 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"); + } else { + resize = resize.replace("##REPLACE##HEIGHT##", + "225"); + + resize = resize.replace("##REPLACE##WIDTH##", + "225"); + } + + + String postman = FileUtils.readFileToString(FileUtils + .toFile(PDFASJsServlet.class + .getResource("/js/postman.js"))); + + 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 diff --git a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/helper/SessionHelper.java b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/helper/SessionHelper.java index 0f2c6b5..8815b87 100644 --- a/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/helper/SessionHelper.java +++ b/simpleSigning/src/main/java/at/gv/egiz/simpleSigning/helper/SessionHelper.java @@ -14,6 +14,7 @@ public class SessionHelper { private static final String SESSION_CONNECTOR = "SESSION_CONNECTOR"; private static final String SESSION_EVENTID = "SESSION_EVENTID"; private static final String SESSION_DOCUMENT = "SESSION_DOCUMENT"; + private static final String SESSION_RESIZE_DONE = "SESSION_RESIZE_DONE"; private static final String SESSION_TYPE_TEXT = "TEXT"; private static final String SESSION_TYPE_PDF = "PDF"; @@ -98,6 +99,19 @@ public class SessionHelper { } } + public static void setResizeDone(HttpServletRequest request) { + request.getSession().setAttribute(SESSION_RESIZE_DONE, Boolean.TRUE); + } + + public static boolean getResizeDone(HttpServletRequest request) { + Object s = request.getSession().getAttribute(SESSION_RESIZE_DONE); + if (s != null && s instanceof Boolean) { + return ((Boolean)s).booleanValue(); + } else { + return false; + } + } + public static void setDocument(HttpServletRequest request, byte[] doc) { if(doc == null) { logger.info("[" + request.getSession().getId() + "]: setting Document to NULL!!!"); @@ -113,9 +127,12 @@ public class SessionHelper { if (session != null) { Object obj = session.getAttribute(SESSION_DOCUMENT); if (obj != null && obj instanceof byte[]) { + logger.info("[" + request.getSession().getId() + "]: getting Document is byte with Size {}", + ((byte[]) obj).length); return (byte[]) obj; } } + logger.info("[" + request.getSession().getId() + "]: getting Document is null"); return null; } -- cgit v1.2.3