aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java43
1 files changed, 37 insertions, 6 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java
index e61a113a..2f62269b 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java
@@ -20,6 +20,7 @@ import org.slf4j.LoggerFactory;
import com.lowagie.text.html.WebColors;
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
import at.gv.egiz.pdfas.lib.api.ByteArrayDataSink;
import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource;
import at.gv.egiz.pdfas.lib.api.Configuration;
@@ -65,6 +66,8 @@ public class PdfAsHelper {
private static final String PDF_ERR_URL = "PDF_ERR_URL";
private static final String PDF_INVOKE_URL = "PDF_INVOKE_URL";
private static final String REQUEST_FROM_DU = "REQ_DATA_URL";
+ private static final String SIGNATURE_DATA_HASH = "SIGNATURE_DATA_HASH";
+ private static final String SIGNATURE_ACTIVE = "SIGNATURE_ACTIVE";
private static final Logger logger = LoggerFactory
.getLogger(PdfAsHelper.class);
@@ -110,7 +113,7 @@ public class PdfAsHelper {
}
}
}
-
+
private static String buildPosString(HttpServletRequest request,
HttpServletResponse response) throws PdfAsWebException {
String posP = PdfAsParameterExtractor.getSigPosP(request);
@@ -177,11 +180,6 @@ public class PdfAsHelper {
return sb.toString();
}
- public static void doSignature(HttpServletRequest request,
- HttpServletResponse response, byte[] pdfData) throws Exception {
-
- }
-
/**
* Create synchronous PDF Signature
*
@@ -242,6 +240,13 @@ public class PdfAsHelper {
HttpServletResponse response, ServletContext context, byte[] pdfData)
throws Exception {
+ // TODO: Protect session so that only one PDF can be signed during one session
+ /*if(PdfAsHelper.isSignatureActive(request)) {
+ throw new PdfAsException("Signature is active in this session");
+ }
+
+ PdfAsHelper.setSignatureActive(request, true);*/
+
validatePdfSize(request, response, pdfData);
HttpSession session = request.getSession();
@@ -609,4 +614,30 @@ public class PdfAsHelper {
}
return false;
}
+
+ public static void setSignatureDataHash(HttpServletRequest request, String value) {
+ request.setAttribute(SIGNATURE_DATA_HASH, value);
+ }
+
+ public static String getSignatureDataHash(HttpServletRequest request) {
+ Object obj = request.getAttribute(SIGNATURE_DATA_HASH);
+ if (obj != null) {
+ return obj.toString();
+ }
+ return "";
+ }
+
+ public static void setSignatureActive(HttpServletRequest request, boolean value) {
+ request.setAttribute(SIGNATURE_ACTIVE, new Boolean(value));
+ }
+
+ public static boolean isSignatureActive(HttpServletRequest request) {
+ Object obj = request.getAttribute(SIGNATURE_ACTIVE);
+ if (obj != null) {
+ if (obj instanceof Boolean) {
+ return ((Boolean) obj).booleanValue();
+ }
+ }
+ return false;
+ }
}