diff options
Diffstat (limited to 'pdf-as-web/src')
11 files changed, 393 insertions, 0 deletions
| 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 | 
