diff options
Diffstat (limited to 'pdf-as-web')
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 |