aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-11-12 12:26:10 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-11-12 12:26:10 +0100
commit7b2e2b640b0f392183f7927f692936950d3fabfc (patch)
treeffd4acccb62f2679ff613bf0cd8cd0850186b465 /pdf-as-web
parentdd43264f702c5e0351cc63835862c55f3e847634 (diff)
downloadpdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.tar.gz
pdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.tar.bz2
pdf-as-4-7b2e2b640b0f392183f7927f692936950d3fabfc.zip
SecurityLayer commands included
Diffstat (limited to 'pdf-as-web')
-rw-r--r--pdf-as-web/.gitignore1
-rw-r--r--pdf-as-web/build.gradle36
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PDFASSession.java37
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/package-info.java8
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/package-info.java8
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java37
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java37
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java69
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java61
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/package-info.java8
-rw-r--r--pdf-as-web/src/main/webapp/WEB-INF/web.xml101
-rw-r--r--pdf-as-web/src/main/webapp/signstart.jsp14
-rw-r--r--pdf-as-web/src/main/webapp/verifystart.jsp13
13 files changed, 430 insertions, 0 deletions
diff --git a/pdf-as-web/.gitignore b/pdf-as-web/.gitignore
new file mode 100644
index 00000000..5e56e040
--- /dev/null
+++ b/pdf-as-web/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/pdf-as-web/build.gradle b/pdf-as-web/build.gradle
new file mode 100644
index 00000000..c579ad70
--- /dev/null
+++ b/pdf-as-web/build.gradle
@@ -0,0 +1,36 @@
+apply plugin: 'java'
+apply plugin: 'eclipse'
+apply plugin: 'eclipse-wtp'
+apply plugin: 'war'
+
+sourceCompatibility = 1.5
+
+jar {
+ manifest {
+ attributes 'Implementation-Title': 'PDF-AS-WEB', 'Implementation-Version': version
+ }
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ compile project (':pdf-as-lib')
+ compile project (':stamper:stmp-itext')
+ compile project (':signature-standards:sigs-pcks7detached')
+ compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
+ testCompile group: 'junit', name: 'junit', version: '4.+'
+}
+
+test {
+ systemProperties 'property': 'value'
+}
+
+uploadArchives {
+ repositories {
+ flatDir {
+ dirs 'repos'
+ }
+ }
+}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PDFASSession.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PDFASSession.java
new file mode 100644
index 00000000..9207847d
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PDFASSession.java
@@ -0,0 +1,37 @@
+package at.gv.egiz.pdfas.web.helper;
+
+import java.io.Serializable;
+
+import at.gv.egiz.pdfas.lib.api.Configuration;
+import at.gv.egiz.pdfas.lib.api.StatusRequest;
+import at.gv.egiz.pdfas.lib.api.sign.SignParameter;
+
+public class PDFASSession implements Serializable {
+
+ public static final String SESSION_TAG = "PDFASSession";
+
+ private StatusRequest statusRequest;
+ private SignParameter signParameter;
+ private Configuration config;
+
+ public PDFASSession(SignParameter parameter) {
+ this.signParameter = parameter;
+ }
+
+ public StatusRequest getStatusRequest() {
+ return statusRequest;
+ }
+
+ public void setStatusRequest(StatusRequest statusRequest) {
+ this.statusRequest = statusRequest;
+ }
+
+ public SignParameter getSignParameter() {
+ return signParameter;
+ }
+
+ public void setSignParameter(SignParameter signParameter) {
+ this.signParameter = signParameter;
+ }
+
+}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/package-info.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/package-info.java
new file mode 100644
index 00000000..5f9a6b5d
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/package-info.java
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+/**
+ * @author afitzek
+ *
+ */
+package at.gv.egiz.pdfas.web.helper; \ No newline at end of file
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/package-info.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/package-info.java
new file mode 100644
index 00000000..937390f0
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/package-info.java
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+/**
+ * @author afitzek
+ *
+ */
+package at.gv.egiz.pdfas.web; \ No newline at end of file
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java
new file mode 100644
index 00000000..93586c1a
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java
@@ -0,0 +1,37 @@
+package at.gv.egiz.pdfas.web.servlets;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Servlet implementation class DataURL
+ */
+public class DataURLServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public DataURLServlet() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+ }
+
+}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java
new file mode 100644
index 00000000..26f42840
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java
@@ -0,0 +1,37 @@
+package at.gv.egiz.pdfas.web.servlets;
+
+import java.io.IOException;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Servlet implementation class ProvidePDF
+ */
+public class ProvidePDFServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public ProvidePDFServlet() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+ }
+
+}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java
new file mode 100644
index 00000000..9ea6f354
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SignServlet.java
@@ -0,0 +1,69 @@
+package at.gv.egiz.pdfas.web.servlets;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import at.gv.egiz.pdfas.common.exceptions.PdfAsException;
+import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource;
+import at.gv.egiz.pdfas.lib.api.Configuration;
+import at.gv.egiz.pdfas.lib.api.PdfAs;
+import at.gv.egiz.pdfas.lib.api.PdfAsFactory;
+import at.gv.egiz.pdfas.lib.api.StatusRequest;
+import at.gv.egiz.pdfas.lib.api.sign.SignParameter;
+
+/**
+ * Servlet implementation class Sign
+ */
+public class SignServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Default constructor.
+ */
+ public SignServlet() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
+ * response)
+ */
+ protected void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException, IOException {
+ response.getWriter()
+ .println(
+ "<html><head><title>Hello</title></head><body>BODY</body></html>");
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
+ * response)
+ */
+ protected void doPost(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+ }
+
+ protected void doSignature(HttpServletRequest request,
+ HttpServletResponse response, byte[] pdfData) {
+ try {
+ PdfAs pdfAs = PdfAsFactory.createPdfAs(null);
+ // TODO: Build configuration and Sign Parameters
+ Configuration config = pdfAs.getConfiguration();
+ SignParameter signParameter = PdfAsFactory.createSignParameter(
+ config, new ByteArrayDataSource(pdfData));
+
+
+
+ StatusRequest statusRequest = pdfAs.startSign(signParameter);
+
+ } catch (PdfAsException e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java
new file mode 100644
index 00000000..d4303a5f
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java
@@ -0,0 +1,61 @@
+package at.gv.egiz.pdfas.web.servlets;
+
+import java.io.IOException;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource;
+import at.gv.egiz.pdfas.lib.api.Configuration;
+import at.gv.egiz.pdfas.lib.api.PdfAs;
+import at.gv.egiz.pdfas.lib.api.PdfAsFactory;
+import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter;
+import at.gv.egiz.pdfas.lib.api.verify.VerifyResult;
+
+/**
+ * Servlet implementation class VerifyServlet
+ */
+public class VerifyServlet extends HttpServlet {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public VerifyServlet() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
+ */
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+ // TODO Auto-generated method stub
+ }
+
+ protected void doVerify(HttpServletRequest request, HttpServletResponse response,
+ byte[] pdfData, int whichSignature) {
+ PdfAs pdfAs = PdfAsFactory.createPdfAs(null);
+ Configuration conf = pdfAs.getConfiguration();
+ VerifyParameter parameter = PdfAsFactory.createVerifyParameter(conf, new ByteArrayDataSource(pdfData));
+ parameter.setWhichSignature(whichSignature);
+
+ List<VerifyResult> results = pdfAs.verify(parameter);
+
+ // Create HTML Snippet for each Verification Result
+ // Put these results into the web page
+ // Or create a JSON response with the verification results for automated processing
+
+ }
+
+}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/package-info.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/package-info.java
new file mode 100644
index 00000000..6be370f0
--- /dev/null
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/package-info.java
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+/**
+ * @author afitzek
+ *
+ */
+package at.gv.egiz.pdfas.web.servlets; \ No newline at end of file
diff --git a/pdf-as-web/src/main/webapp/WEB-INF/web.xml b/pdf-as-web/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 00000000..13149b7f
--- /dev/null
+++ b/pdf-as-web/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE web-app
+ PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+ <!-- General description of your web application -->
+
+ <display-name>PDF-AS-WEB</display-name>
+ <description>
+ PDF-AS-WEB Application
+ </description>
+
+
+ <!-- Context initialization parameters that define shared String constants
+ used within your application, which can be customized by the system administrator
+ who is installing your application. The values actually assigned to these
+ parameters can be retrieved in a servlet or JSP page by calling: String value
+ = getServletContext().getInitParameter("name"); where "name" matches the
+ <param-name> element of one of these initialization parameters. You can define
+ any number of context initialization parameters, including zero. <context-param>
+ <param-name>webmaster</param-name> <param-value>myaddress@mycompany.com</param-value>
+ <description> The EMAIL address of the administrator to whom questions and
+ comments about this application should be addressed. </description> </context-param> -->
+
+ <!-- Servlet definitions for the servlets that make up your web application,
+ including initialization parameters. With Tomcat, you can also send requests
+ to servlets not listed here with a request like this: http://localhost:8080/{context-path}/servlet/{classname}
+ but this usage is not guaranteed to be portable. It also makes relative references
+ to images and other resources required by your servlet more complicated,
+ so defining all of your servlets (and defining a mapping to them with a servlet-mapping
+ element) is recommended. Servlet initialization parameters can be retrieved
+ in a servlet or JSP page by calling: String value = getServletConfig().getInitParameter("name");
+ where "name" matches the <param-name> element of one of these initialization
+ parameters. You can define any number of servlets, including zero. -->
+
+ <servlet>
+ <servlet-name>SignServlet</servlet-name>
+ <description>
+ The Sign Servlet allows Users to Sign PDF Documents ...
+ </description>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.SignServlet</servlet-class>
+ <load-on-startup>5</load-on-startup>
+ </servlet>
+ <servlet>
+ <servlet-name>ProvidePDF</servlet-name>
+ <display-name>ProvidePDF</display-name>
+ <description></description>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.ProvidePDF</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>DataURL</servlet-name>
+ <display-name>DataURL</display-name>
+ <description></description>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.DataURL</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>VerifyServlet</servlet-name>
+ <display-name>VerifyServlet</display-name>
+ <description></description>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.VerifyServlet</servlet-class>
+ </servlet>
+
+ <!-- Define mappings that are used by the servlet container to translate
+ a particular request URI (context-relative) to a particular servlet. The
+ examples below correspond to the servlet descriptions above. Thus, a request
+ URI like: http://localhost:8080/{contextpath}/graph will be mapped to the
+ "graph" servlet, while a request like: http://localhost:8080/{contextpath}/saveCustomer.do
+ will be mapped to the "controller" servlet. You may define any number of
+ servlet mappings, including zero. It is also legal to define more than one
+ mapping for the same servlet, if you wish to. -->
+
+ <servlet-mapping>
+ <servlet-name>SignServlet</servlet-name>
+ <url-pattern>/Sign</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>ProvidePDF</servlet-name>
+ <url-pattern>/ProvidePDF</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>DataURL</servlet-name>
+ <url-pattern>/DataURL</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>VerifyServlet</servlet-name>
+ <url-pattern>/VerifyServlet</url-pattern>
+ </servlet-mapping>
+
+ <!-- Define the default session timeout for your application, in minutes.
+ From a servlet or JSP page, you can modify the timeout for a particular session
+ dynamically by using HttpSession.getMaxInactiveInterval(). -->
+
+ <session-config>
+ <session-timeout>30</session-timeout> <!-- 30 minutes -->
+ </session-config>
+
+ <welcome-file-list>
+ <welcome-file>signstart.jsp</welcome-file>
+ </welcome-file-list>
+
+</web-app> \ No newline at end of file
diff --git a/pdf-as-web/src/main/webapp/signstart.jsp b/pdf-as-web/src/main/webapp/signstart.jsp
new file mode 100644
index 00000000..596f04dc
--- /dev/null
+++ b/pdf-as-web/src/main/webapp/signstart.jsp
@@ -0,0 +1,14 @@
+<html>
+<head>
+</head>
+<body>
+<h1>Sign PDF-Dokument</h1>
+<form action="Sign" method="POST" enctype="multipart/form-data">
+
+ <input type="file" name="pdffile" />
+
+ <input type="submit" value="Card">
+ <input type="submit" value="Handy">
+</form>
+</body>
+</html> \ No newline at end of file
diff --git a/pdf-as-web/src/main/webapp/verifystart.jsp b/pdf-as-web/src/main/webapp/verifystart.jsp
new file mode 100644
index 00000000..cf8187bf
--- /dev/null
+++ b/pdf-as-web/src/main/webapp/verifystart.jsp
@@ -0,0 +1,13 @@
+<html>
+<head>
+</head>
+<body>
+<h1>Verify PDF-Dokument</h1>
+<form action="Sign" method="POST" enctype="multipart/form-data">
+
+ <input type="file" name="pdffile" />
+
+ <input type="submit" value="Verfiy">
+</form>
+</body>
+</html> \ No newline at end of file