aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java')
-rw-r--r--src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java b/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java
index af1d0ae..9826500 100644
--- a/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java
+++ b/src/main/java/at/gv/egiz/pdfas/web/helper/SignServletHelper.java
@@ -18,6 +18,8 @@ import org.apache.commons.logging.LogFactory;
import at.gv.egiz.pdfas.framework.SignatorFactory;
import at.gv.egiz.pdfas.framework.signator.Signator;
+import at.gv.egiz.pdfas.impl.output.ByteArrayDataSink;
+import at.gv.egiz.pdfas.impl.output.FileBasedDataSink;
import at.gv.egiz.pdfas.web.SignSessionInformation;
import at.knowcenter.wag.egov.egiz.PdfASID;
import at.knowcenter.wag.egov.egiz.exceptions.PresentableException;
@@ -185,10 +187,21 @@ public class SignServletHelper
else
{
// TODO @tzefferer: what is this code?
- byte[] signed_pdf = new byte [(int)si.output.getFile().length()];
- FileInputStream fis = new FileInputStream(si.output.getFile());
- fis.read(signed_pdf);
- fis.close();
+ byte [] signed_pdf = null;
+ if (si.output instanceof FileBasedDataSink)
+ {
+ FileBasedDataSink fbds = (FileBasedDataSink)si.output;
+ signed_pdf = new byte [(int)fbds.getFile().length()];
+ FileInputStream fis = new FileInputStream(fbds.getFile());
+ fis.read(signed_pdf);
+ fis.close();
+ }
+ else
+ {
+ ByteArrayDataSink bads = (ByteArrayDataSink)si.output;
+ signed_pdf = bads.getByteArray();
+ }
+
PDFContainer entry = new PDFContainer(signed_pdf, si.exappinf.pdf_id);
ProvidePDFServlet.signedDocuments.add(entry);
@@ -205,7 +218,6 @@ public class SignServletHelper
+ "=" + pdf_id + "&" + FormFields.FIELD_FILE_LENGTH + "=" + signed_pdf.length;
response.sendRedirect(query);
-
}
}