diff options
Diffstat (limited to 'pdf-as-web/src/main/webapp')
52 files changed, 1793 insertions, 0 deletions
diff --git a/pdf-as-web/src/main/webapp/META-INF/context.xml b/pdf-as-web/src/main/webapp/META-INF/context.xml new file mode 100644 index 0000000..a0de89e --- /dev/null +++ b/pdf-as-web/src/main/webapp/META-INF/context.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<Context path="/pdf-as" cookies="true" reloadable="false">
+ <Manager pathname="" />
+
+ <!-- Use system property "pdf-as.work-dir" or web.xml parameter "work-dir" instead. -->
+ <!--
+ <Parameter name="work-dir" value="${catalina.base}/conf/pdf-as" override="false"/>
+ -->
+</Context>
diff --git a/pdf-as-web/src/main/webapp/WEB-INF/decorators.xml b/pdf-as-web/src/main/webapp/WEB-INF/decorators.xml new file mode 100644 index 0000000..a88892d --- /dev/null +++ b/pdf-as-web/src/main/webapp/WEB-INF/decorators.xml @@ -0,0 +1,16 @@ +<decorators>
+
+ <excludes>
+ <pattern>/bku-erkennung/*</pattern>
+ <pattern>/jsp/please_wait.jsp</pattern>
+ <pattern>/css/*</pattern>
+ <pattern>/img/*</pattern>
+ <pattern>*.pdf</pattern>
+ <pattern>/*.pdf</pattern>
+ </excludes>
+
+ <decorator name="standalone" page="/sitemesh/standalone.jsp">
+ <pattern>/*</pattern>
+ </decorator>
+
+</decorators>
diff --git a/pdf-as-web/src/main/webapp/WEB-INF/sitemesh.xml b/pdf-as-web/src/main/webapp/WEB-INF/sitemesh.xml new file mode 100644 index 0000000..c6653cc --- /dev/null +++ b/pdf-as-web/src/main/webapp/WEB-INF/sitemesh.xml @@ -0,0 +1,30 @@ +<sitemesh>
+ <property name="decorators-file" value="/WEB-INF/decorators.xml"/>
+ <excludes file="${decorators-file}"/>
+
+ <page-parsers>
+ <parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
+ </page-parsers>
+ <decorator-mappers>
+ <mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
+ <param name="property.1" value="meta.decorator" />
+ <param name="property.2" value="decorator" />
+ </mapper>
+ <!--
+ <mapper class="com.opensymphony.module.sitemesh.mapper.LanguageDecoratorMapper">
+ <param name="match.en" value="en" />
+ </mapper>
+ -->
+ <mapper class="at.gv.egiz.pdfas.web.i18n.LanguageDecoratorMapper"/>
+ <mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper"/>
+ <mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
+ <param name="decorator" value="printable" />
+ <param name="parameter.name" value="printable" />
+ <param name="parameter.value" value="true" />
+ </mapper>
+ <mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper"/>
+ <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
+ <param name="config" value="${decorators-file}" />
+ </mapper>
+ </decorator-mappers>
+</sitemesh>
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 0000000..e69614b --- /dev/null +++ b/pdf-as-web/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+ version="2.4">
+
+ <description>EGIZ PDF-AS</description>
+ <display-name>PDF-AS</display-name>
+
+ <!--
+ <context-param>
+ <description>
+ The working directory of PDF-AS.
+ Points to a directory on the local file system where templates, config files, certificates etc. are found.
+ Alternatively the configuration can be declared by system property "pdf-as.work-dir"
+ (which is the recommended way) or servlet init parameter "work-dir" in context descriptor
+ file "pdf-as.xml".
+ </description>
+ <param-name>work-dir</param-name>
+ <param-value>REPLACE_WITH_PATH_TO_PDFAS_CONFIGURATION</param-value>
+ </context-param>
+ -->
+
+ <context-param>
+ <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
+ <param-value>at.gv.egiz.pdfas.web.i18n.language</param-value>
+ </context-param>
+
+ <filter>
+ <filter-name>encodingFilter</filter-name>
+ <filter-class>at.gv.egiz.pdfas.web.filter.EncodingFilter</filter-class>
+ <init-param>
+ <param-name>encoding</param-name>
+ <param-value>UTF-8</param-value>
+ </init-param>
+ <init-param>
+ <param-name>setRequestEncoding</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>forceRequestEncoding</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>setResponseEncoding</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>forceResponseEncoding</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ </filter>
+
+ <filter>
+ <filter-name>localeparam</filter-name>
+ <filter-class>at.gv.egiz.pdfas.web.i18n.LocaleParamFilter</filter-class>
+ </filter>
+
+ <filter>
+ <filter-name>sitemesh</filter-name>
+ <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>encodingFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter-mapping>
+ <filter-name>localeparam</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter-mapping>
+ <filter-name>sitemesh</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <listener>
+ <listener-class>at.gv.egiz.pdfas.web.PdfASServletContextListener</listener-class>
+ </listener>
+
+ <servlet>
+ <servlet-name>Sign</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.SignServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>ProvidePDF</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.ProvidePDFServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>SignPreview</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.SignPreviewServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>RetrieveSignatureData</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.RetrieveSignatureDataServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>DataURL</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.DataURLServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>Verify</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.VerifyServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>VerifyPreview</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.VerifyPreviewServlet</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>AsynchronousDataResponder</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.AsynchronousDataResponder</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>AsynchronousRedirectResponder</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.AsynchronousRedirectResponder</servlet-class>
+ </servlet>
+
+ <servlet>
+ <servlet-name>UpdateForm</servlet-name>
+ <servlet-class>at.gv.egiz.pdfas.web.servlets.UpdateFormServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Sign</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>SignPreview</servlet-name>
+ <url-pattern>/SignPreview</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>RetrieveSignatureData</servlet-name>
+ <url-pattern>/RetrieveSignatureData</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>DataURL</servlet-name>
+ <url-pattern>/DataURL</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>Verify</servlet-name>
+ <url-pattern>/Verify</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>VerifyPreview</servlet-name>
+ <url-pattern>/VerifyPreview</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>AsynchronousDataResponder</servlet-name>
+ <url-pattern>/AsynchronousDataResponder</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>AsynchronousRedirectResponder</servlet-name>
+ <url-pattern>/AsynchronousRedirectResponder</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>UpdateForm</servlet-name>
+ <url-pattern>/UpdateForm</url-pattern>
+ </servlet-mapping>
+
+ <session-config>
+ <session-timeout>10</session-timeout>
+ </session-config>
+
+ <welcome-file-list>
+ <welcome-file>jsp/signupload.jsp</welcome-file>
+ </welcome-file-list>
+
+</web-app>
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung.html b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung.html new file mode 100644 index 0000000..d3bb009 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung.html @@ -0,0 +1,47 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+ <head>
+ <title>BKU Test</title>
+ <script language="javascript" type="text/javascript">
+ <!--
+ bkuuri='https://127.0.0.1:3496/https-security-layer-request';
+ protocol='https:';
+ if (location.protocol != 'https:') {
+ bkuuri='http://127.0.0.1:3495/http-security-layer-request';
+ protocol='http:';
+ }
+ var index = location.href.indexOf('/bku-erkennung/bku-erkennung.html');
+ if( index != -1 )
+ helperlocation = location.href.substr( 0, index );
+ else
+ helperlocation = protocol + '//' + 'demo.egiz.gv.at/bku-erkennung/v1.1';
+
+ function setBKUAvailable(flag) {
+ if (flag == true) {
+ parent.setBKUAvailable(true);
+ } else {
+ parent.setBKUAvailable(false);
+ }
+ }
+ -->
+ </script>
+ </head>
+
+ <body style="background-color:transparent">
+ <script language="javascript" type="text/javascript">
+ <!--
+ if (location.protocol == 'https:' || location.protocol == 'http:') { // also keine lokalen Aufrufe
+ document.write('<form name="bkucheckform" method="POST" target="iframename" action="' + bkuuri + '" enctype="application/x-www-form-urlencoded">');
+ document.write('<input type="hidden" name="XMLRequest" value="<?xml version="1.0" encoding="UTF-8"?><NullOperationRequest xmlns="http://www.buergerkarte.at/namespaces/securitylayer/1.2#"/>" />');
+ document.write('<input type="hidden" name="RedirectURL" value="' + helperlocation + '/bku-erkennung/bku-erkennung_helper.html"/>');
+ document.write('</form>');
+ setBKUAvailable(false);
+ document.bkucheckform.submit();
+ }
+ -->
+ </script>
+ </body>
+
+</html>
+
diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung_empty.html b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung_empty.html new file mode 100644 index 0000000..d6d1a1a --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung_empty.html @@ -0,0 +1,11 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+ <head>
+ </head>
+
+ <body>
+ </body>
+
+</html>
+
diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung_helper.html b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung_helper.html new file mode 100644 index 0000000..7d6aba9 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung/bku-erkennung_helper.html @@ -0,0 +1,17 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+ <head>
+ <title>BKU Test Helper</title>
+ </head>
+
+ <body>
+ <script language="javascript" type="text/javascript">
+ <!--
+ parent.setBKUAvailable(true);
+ -->
+ </script>
+ </body>
+
+</html>
+
diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung_iframe.html b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung_iframe.html new file mode 100644 index 0000000..94bcdc7 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/bku-erkennung_iframe.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+ <head>
+ <title>BKU Test</title>
+ <style type="text/css">
+ /*
+ img {
+ behavior: url("css/pngbehavior.htc");
+ }
+ */
+ </style>
+ <script language="javascript" type="text/javascript">
+ <!--
+ bkuuri='https://127.0.0.1:3496/https-security-layer-request';
+ protocol='https:';
+ if (location.protocol != 'https:') {
+ bkuuri='http://127.0.0.1:3495/http-security-layer-request';
+ protocol='http:';
+ }
+ var index = location.href.indexOf('/bku-erkennung_iframe.html');
+ if( index != -1 )
+ helperlocation = location.href.substr( 0, index );
+ else
+ helperlocation = protocol + '//' + 'demo.egiz.gv.at/bku-erkennung/v1.1';
+
+ function setBKUAvailable(flag) {
+ if (flag == true) {
+ document.getElementById("statusimage").src = "img/sighw_green.gif";
+ } else {
+ document.getElementById("statusimage").src = "img/sighw_red.gif";
+ }
+ }
+ -->
+ </script>
+ </head>
+
+ <body style="background-color:transparent">
+ <img id="statusimage" src="img/sighw_yellow.gif" style="width: 152px; height: 57px;" alt="status">
+ <iframe name="iframeempty" width="0" height="0" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" src="bku-erkennung/bku-erkennung_empty.html" ></iframe>
+
+ <script language="javascript" type="text/javascript">
+ <!--
+ if (location.protocol == 'https:' || location.protocol == 'http:') { // also keine lokalen Aufrufe
+ document.write('<form name="bkucheckform" target="iframeempty" action="' + bkuuri +'" method="Post" enctype="application/x-www-form-urlencoded">');
+ document.write('<input name="XMLRequest" type="hidden" value="<?xml version="1.0" encoding="UTF-8"?><NullOperationRequest xmlns="http://www.buergerkarte.at/namespaces/securitylayer/1.2#"/>" />');
+ document.write('<input type="hidden" name="RedirectURL" value="'+ helperlocation + '/bku-erkennung/bku-erkennung_helper.html"/>');
+ document.write('</form>');
+ setBKUAvailable(false);
+ document.bkucheckform.submit();
+ }
+ -->
+ </script>
+ </body>
+
+</html>
+
diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/css/pngbehavior.htc b/pdf-as-web/src/main/webapp/bku-erkennung/css/pngbehavior.htc new file mode 100644 index 0000000..ba171c6 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/css/pngbehavior.htc @@ -0,0 +1,86 @@ +<public:component lightWeight="true"> +<public:attach event="onpropertychange" onevent="propertyChanged()" /> +<public:attach event="onbeforeprint" onevent="beforePrint()" for="window"/> +<public:attach event="onafterprint" onevent="afterPrint()" for="window"/> +<script> + +/* + * PNG Behavior + * + * This script was created by Erik Arvidsson (http://webfx.eae.net/contact.html#erik) + * for WebFX (http://webfx.eae.net) + * Copyright 2002-2004 + * + * For usage see license at http://webfx.eae.net/license.html + * + * Version: 1.02 + * Created: 2001-??-?? First working version + * Updated: 2002-03-28 Fixed issue when starting with a non png image and + * switching between non png images + * 2003-01-06 Fixed RegExp to correctly work with IE 5.0x + * 2004-05-09 When printing revert to original + * + */ + +var supported = /MSIE ((5\.5)|[6789])/.test(navigator.userAgent) && + navigator.platform == "Win32"; + +var realSrc; +var blankSrc = "img/blank.gif"; +var isPrinting = false; + +if (supported) fixImage(); + +function propertyChanged() { + if (!supported || isPrinting) return; + + var pName = event.propertyName; + if (pName != "src") return; + // if not set to blank + if (!new RegExp(blankSrc).test(src)) + fixImage(); +}; + +function fixImage() { + // get src + var src = element.src; + + // check for real change + if (src == realSrc && /\.png$/i.test(src)) { + element.src = blankSrc; + return; + } + + if ( ! new RegExp(blankSrc).test(src)) { + // backup old src + realSrc = src; + } + + // test for png + if (/\.png$/i.test(realSrc)) { + // set blank image + element.src = blankSrc; + // set filter + element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." + + "AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; + } + else { + // remove filter + element.runtimeStyle.filter = ""; + } +} + +function beforePrint() { + isPrinting = true; + element.src = realSrc; + element.runtimeStyle.filter = ""; + realSrc = null; +} + +function afterPrint() { + isPrinting = false; + fixImage(); +} + +</script> +</public:component> diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/blank.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/blank.gif Binary files differnew file mode 100644 index 0000000..75b945d --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/blank.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1.gif Binary files differnew file mode 100644 index 0000000..8ff0c6b --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1.png b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1.png Binary files differnew file mode 100644 index 0000000..4cd7c4e --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1.png diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1_active.png b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1_active.png Binary files differnew file mode 100644 index 0000000..97a821d --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1_active.png diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1_small.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1_small.gif Binary files differnew file mode 100644 index 0000000..04804ea --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/siga1_small.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw.gif Binary files differnew file mode 100644 index 0000000..d397253 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_active.png b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_active.png Binary files differnew file mode 100644 index 0000000..62a669b --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_active.png diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green.gif Binary files differnew file mode 100644 index 0000000..cbef10f --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green.png b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green.png Binary files differnew file mode 100644 index 0000000..9d4349e --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green.png diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green_bold.png b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green_bold.png Binary files differnew file mode 100644 index 0000000..62422ed --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green_bold.png diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green_original.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green_original.gif Binary files differnew file mode 100644 index 0000000..0f967c1 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_green_original.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red.gif Binary files differnew file mode 100644 index 0000000..9eba9e2 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red.png b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red.png Binary files differnew file mode 100644 index 0000000..7ffd0b6 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red.png diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red_original.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red_original.gif Binary files differnew file mode 100644 index 0000000..8079312 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_red_original.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow.gif Binary files differnew file mode 100644 index 0000000..9a95fad --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow.png b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow.png Binary files differnew file mode 100644 index 0000000..d27acbf --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow.png diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow_original.gif b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow_original.gif Binary files differnew file mode 100644 index 0000000..5f0aad2 --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/img/sighw_yellow_original.gif diff --git a/pdf-as-web/src/main/webapp/bku-erkennung/index.html b/pdf-as-web/src/main/webapp/bku-erkennung/index.html new file mode 100644 index 0000000..436061b --- /dev/null +++ b/pdf-as-web/src/main/webapp/bku-erkennung/index.html @@ -0,0 +1,14 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+
+ <head>
+ <title>BKU-Erkennung</title>
+ </head>
+
+ <body>
+ <p>Erkennung laufender BKU-Software</p>
+ <iframe src="bku-erkennung_iframe.html" width="152" height="57" id="sep_iframe" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" allowtransparency="true"></iframe>
+ </body>
+
+</html>
+
diff --git a/pdf-as-web/src/main/webapp/css/pdfas-standalone-styles.css b/pdf-as-web/src/main/webapp/css/pdfas-standalone-styles.css new file mode 100644 index 0000000..aa9459c --- /dev/null +++ b/pdf-as-web/src/main/webapp/css/pdfas-standalone-styles.css @@ -0,0 +1,11 @@ +table.pdfassignature td.pdfaslabel {
+ font-size: 0.9em;
+}
+
+table.pdfassignature td.pdfasvalue {
+ font-size: 0.9em;
+}
+
+pre.pdfasnt {
+ font-size: 0.8em;
+}
diff --git a/pdf-as-web/src/main/webapp/css/pdfas-styles.css b/pdf-as-web/src/main/webapp/css/pdfas-styles.css new file mode 100644 index 0000000..b556ffc --- /dev/null +++ b/pdf-as-web/src/main/webapp/css/pdfas-styles.css @@ -0,0 +1,131 @@ +div#pdfas-container td {
+ border: none;
+}
+
+table.pdfassignature {
+ background-color: #F5F5F0;
+ font-size: 1em;
+ border: 1px solid red;
+ border-collapse: collapse;
+ table-layout: auto;
+ width: 650px;
+}
+
+table.pdfassignature td.pdfaslabel {
+ font-family: Helvetica, Times;
+ text-align: center;
+ min-width: 100px;
+ /* word-spacing: nowrap; */
+}
+
+table.pdfassignature td {
+ border: 1px solid black !important;
+}
+
+textarea.freetext {
+ width: 450px;
+ height: 150px;
+ font: 1em 'Courier New', courier, monospace;
+ margin: 0px 0px 0px 0px;
+}
+
+table#pdfasupperformtable {
+ margin-top: 10px;
+}
+
+table.pdfassignature td.pdfasvalue {
+ font-family: monospace;
+ border: 1px solid black;
+ border-collapse: collapse;
+ text-align: left;
+ font-size: 1.2em;
+}
+
+div.pdfasnobreak {
+ float: left;
+ white-space: nowrap;
+}
+
+table.pdfassignature td.pdfasvalue input {
+ font-family: monospace;
+}
+
+div.pdfasverticalspace {
+ padding: 20px 0px 0px 0px;
+}
+
+div.pdfassmallverticalspace {
+ padding: 10px 0px 0px 0px;
+}
+
+div.pdfasnote {
+ padding: 10px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+ max-width: 700px;
+ text-align: left;
+}
+
+.pdfasemphasis {
+ color: #2c5486;
+ font-weight: bold;
+}
+
+pre.pdfasnt {
+ font: 1em, courier new, courier, monospace;
+ border: 1px solid black;
+ text-align: left;
+ padding: 5px;
+ height: 40ex;
+ width: 640px;
+ overflow: auto;
+}
+
+a.pdfasbacklink {
+ padding: 0px 0px 0px 0px;
+ margin: 20px 0px 10px 0px;
+}
+
+.pdfaspreviewfield {
+ font: 1em, courier new, courier, monospace;
+ width: 94%;
+ margin: 0px 0px 0px 0px;
+}
+
+table.pdfaslisttable {
+ border-style: none;
+ border-collapse: collapse;
+ text-align: left;
+ font-size: 1em;
+ width: 100%;
+}
+
+.pdfaslisttablecontainer {
+ border: 1px solid black;
+ padding: 5px 5px 5px 5px;
+ margin: 0px 0px 15px 0px;
+ float: left;
+ width: 98%;
+}
+
+table.pdfaslisttable td.pdfasvalue {
+ width: 90%;
+}
+
+table.pdfaslisttable td.pdfascaption {
+ width: 10%;
+ vertical-align: top;
+ padding-right: 10px;
+ white-space: nowrap;
+}
+
+.pdfasok {
+ background-color: #bdff7b;
+}
+
+.pdfasnok {
+ background-color: #f66;
+}
+
+fieldset.pdfasresultfieldset {
+ padding: 5px 5px 5px 5px;
+}
diff --git a/pdf-as-web/src/main/webapp/images/button-search.jpg b/pdf-as-web/src/main/webapp/images/button-search.jpg Binary files differnew file mode 100644 index 0000000..3a17347 --- /dev/null +++ b/pdf-as-web/src/main/webapp/images/button-search.jpg diff --git a/pdf-as-web/src/main/webapp/images/chiperling.jpg b/pdf-as-web/src/main/webapp/images/chiperling.jpg Binary files differnew file mode 100644 index 0000000..fcb633a --- /dev/null +++ b/pdf-as-web/src/main/webapp/images/chiperling.jpg diff --git a/pdf-as-web/src/main/webapp/images/menu-divider.jpg b/pdf-as-web/src/main/webapp/images/menu-divider.jpg Binary files differnew file mode 100644 index 0000000..53272d7 --- /dev/null +++ b/pdf-as-web/src/main/webapp/images/menu-divider.jpg diff --git a/pdf-as-web/src/main/webapp/images/signatur-logo_de-100.png b/pdf-as-web/src/main/webapp/images/signatur-logo_de-100.png Binary files differnew file mode 100644 index 0000000..d7ff84d --- /dev/null +++ b/pdf-as-web/src/main/webapp/images/signatur-logo_de-100.png diff --git a/pdf-as-web/src/main/webapp/images/signatur-logo_de.png b/pdf-as-web/src/main/webapp/images/signatur-logo_de.png Binary files differnew file mode 100644 index 0000000..4307f6a --- /dev/null +++ b/pdf-as-web/src/main/webapp/images/signatur-logo_de.png diff --git a/pdf-as-web/src/main/webapp/images/signatur-logo_en-100.png b/pdf-as-web/src/main/webapp/images/signatur-logo_en-100.png Binary files differnew file mode 100644 index 0000000..0d84ca7 --- /dev/null +++ b/pdf-as-web/src/main/webapp/images/signatur-logo_en-100.png diff --git a/pdf-as-web/src/main/webapp/images/signatur-logo_en.png b/pdf-as-web/src/main/webapp/images/signatur-logo_en.png Binary files differnew file mode 100644 index 0000000..505e6a5 --- /dev/null +++ b/pdf-as-web/src/main/webapp/images/signatur-logo_en.png diff --git a/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK.jsp b/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK.jsp new file mode 100644 index 0000000..6a1ce81 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/SIGNATURBLOCK.jsp @@ -0,0 +1,103 @@ +<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%>
+
+<%@ page import="org.apache.commons.lang.time.DateFormatUtils" %>
+<%@ page import="java.util.Date" %>
+<%@ page import="at.gv.egiz.pdfas.api.commons.Constants" %>
+<%@ page import="at.gv.egiz.pdfas.web.servlets.UpdateFormServlet"%>
+<%@ page import="at.gv.egiz.pdfas.web.FormFields" %>
+
+<%@ include file="language.jsp" %>
+
+ <%
+ String mode = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_MODE_KEY);
+ String device = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_DEVICE_KEY);
+ String type = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_TYPE_KEY);
+
+ String sbValue;
+ String sbLabel;
+ String sbMeta;
+ String sbName;
+ String sbDate;
+ String sbIssuer;
+ String sbNumber;
+ String sbKZ;
+ String sbID;
+ String sbMetaValue;
+ if ("SIGNATURBLOCK_DE".equals(type)) {
+ sbValue = "Signaturwert";
+ sbLabel = "signatur-logo_de-100.png";
+ sbMetaValue = "Informationen zur Prüfung der elektronischen Signatur und des Ausdrucks finden Sie unter: <input type=\"text\" name=\"vservice\" readonly=\"readonly\" disabled=\"disabled\" value=\"http://www.signaturpruefung.gv.at\" size=\"50\" maxlength=\"255\"/>";
+ sbName = "Unterzeichner";
+ sbDate = "Datum/Zeit-UTC";
+ sbIssuer = "Aussteller-Zertifikat";
+ sbNumber = "Serien-Nr.";
+ sbKZ = "Methode";
+ sbID = "Parameter";
+ sbMeta = "Prüfinformation";
+ } else {
+ sbValue = "Signature Value";
+ sbLabel = "signatur-logo_en-100.png";
+ sbMetaValue = "Information about the verification of the electronic signature and of the printout can be found at: <input type=\"text\" name=\"vservice\" readonly=\"readonly\" disabled=\"disabled\" value=\"http://www.signature-verification.gv.at\" size=\"50\" maxlength=\"255\"/>";
+ sbName = "Signatory";
+ sbDate = "Date/Time-UTC";
+ sbIssuer = "Issuer-Certificate";
+ sbNumber = "Serial-No.";
+ sbKZ = "Method";
+ sbID = "Parameter";
+ sbMeta = "Verification";
+ }
+
+ %>
+
+<html>
+
+<table border="0" cellpadding="3" cellspacing="0" class="pdfassignature">
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbValue %></td>
+ <td colspan="2" class="pdfasvalue">
+ <div style="float:left;">Aqs3vMeF81wm/UJjIcLOzUs9</div>
+ <div style="float:left;">dxTBzhi2RC8avQyMAmc3v</div>
+ <div style="float:left;">WEj9HT1DI3iish4smRr</div>
+ </td>
+ </tr>
+ <tr>
+ <td rowspan="6"><img src="<%= request.getContextPath() %>/images/<%= sbLabel %>" width="100" alt="Signatur-Logo"/></td>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbName %></td>
+ <td class="pdfasvalue"><input type="text" name="signer" value="<fmt:message key="signaturblock.signer.value"/>" readonly="readonly" disabled="disabled" size="40" maxlength="255"/></td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbDate %></td>
+ <td class="pdfasvalue"><%= DateFormatUtils.formatUTC(new Date(), "yyyy-MM-dd'T'HH:mm:ss'Z'", request.getLocale()) %></td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbIssuer %></td>
+ <td class="pdfasvalue">
+ <div class="pdfasnobreak">CN=<fmt:message key="signaturblock.issuer.value.cn"/>,</div>
+ <div class="pdfasnobreak">O=<fmt:message key="signaturblock.issuer.value.o"/>,</div>
+ <div class="pdfasnobreak">C=AT</div>
+ </td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbNumber %></td>
+ <td class="pdfasvalue">123456</td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbKZ %></td>
+ <td class="pdfasvalue">
+ <div class="pdfasnobreak">urn:pdfsigfilter:</div>
+ <div class="pdfasnobreak">bka.gv.at:</div>
+ <div class="pdfasnobreak"><%= FormFields.VALUE_MODE_TEXTUAL.equals(mode) ? "text:v1.2.0" : "binaer:v1.1.0" %></div>
+ </td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbID %></td>
+ <td class="pdfasvalue">
+ <div class="pdfasnobreak">etsi-moc-1.1@dbc17c36</div>
+ </td>
+ </tr>
+ <tr>
+ <td class="pdfaslabel" nowrap="nowrap"><%= sbMeta %></td>
+ <td colspan="2" class="pdfasvalue"><%= sbMetaValue %></td>
+ </tr>
+</table>
+</html>
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/jsp/dataok.jsp b/pdf-as-web/src/main/webapp/jsp/dataok.jsp new file mode 100644 index 0000000..ae209ab --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/dataok.jsp @@ -0,0 +1,25 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<%@ include file="language.jsp" %>
+
+<html>
+<head>
+<title><fmt:message key="common.title"/></title>
+<link rel="stylesheet" type="text/css" href="<%= request.getContextPath() %>/css/styles.css" />
+</head>
+<body>
+<div class="maindiv">
+<h1><fmt:message key="common.title"/></h1>
+<h2><fmt:message key="dataok.heading2"/></h2>
+
+<p>
+<fmt:message key="dataok.taken"/>
+</p>
+
+<%
+ String btlurl = (String)request.getAttribute("btlurl");
+%>
+<a class="big" href="<%=btlurl%>"><fmt:message key="common.backtolist"/></a>
+</div>
+</body>
+</html>
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/jsp/download.jsp b/pdf-as-web/src/main/webapp/jsp/download.jsp new file mode 100644 index 0000000..1b56f93 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/download.jsp @@ -0,0 +1,44 @@ +<%@ page contentType="text/html; charset=UTF-8"%>
+
+<%@ include file="language.jsp" %>
+
+<%@ page import="at.gv.egiz.pdfas.web.session.SessionAttributes" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.LocalRequestHelper" %>
+
+<%
+ String downloadURL = (String) session.getAttribute(SessionAttributes.DOWNLOAD_URL_FOR_SIGNED_PDF_DOCUMENT);
+%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+ <title><fmt:message key="download.title"/></title>
+ <script language="javascript" type="text/javascript">
+ <!--
+ function disableElement(elementId) {
+ document.getElementById(elementId).disabled = true;
+ document.getElementById(elementId).blur();
+ }
+ function hitButton() {
+ document.submitform.submit();
+ disableElement("SendRequestButton");
+ document.getElementById("SendRequestButton").value = "<fmt:message key="download.button.alreadydone"/>";
+ return(true);
+ }
+ -->
+ </script>
+ <base href="<%= LocalRequestHelper.getLocalContextAddress(request, response) %>/"/>
+ </head>
+
+ <body>
+ <h1><fmt:message key="common.title"/></h1>
+ <h2><fmt:message key="download.heading2"/></h2>
+ <div class="pdfasnote"><fmt:message key="download.note"/></div>
+ <div class="pdfasverticalspace"></div>
+ <form action="<%= downloadURL %>" name="submitform" accept-charset="UTF-8" method="post" enctype="application/x-www-form-urlencoded">
+ <input type="submit" id="SendRequestButton" value="<fmt:message key="download.button.download"/>" onclick="return hitButton();"/>
+ </form>
+ <div class="pdfasverticalspace"></div>
+ <a href="<%= (response.encodeRedirectURL(request.getContextPath() + "/") + "?") %><fmt:message key="common.locale.param"/>"><fmt:message key="common.back"/></a>
+ </body>
+
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/error.jsp b/pdf-as-web/src/main/webapp/jsp/error.jsp new file mode 100644 index 0000000..fc7ff1b --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/error.jsp @@ -0,0 +1,109 @@ +<%@ page isErrorPage="true" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.LocalRequestHelper" %>
+<%@ page import="at.gv.egiz.pdfas.web.servlets.SignServlet" %>
+<%@page import="at.gv.egiz.pdfas.api.exceptions.PdfAsException"%>
+<%@ page import="at.gv.egiz.pdfas.web.session.SignSessionInformation" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.VerifySessionInformation" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.SessionAttributes" %>
+<%@ page import="org.apache.commons.httpclient.util.EncodingUtil" %>
+<%@ page import="org.apache.commons.httpclient.NameValuePair" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.SignServletHelper" %>
+<%@ page import="org.apache.commons.lang.StringEscapeUtils" %>
+<%@ page import="java.io.*" %>
+
+<%@ include file="language.jsp" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+
+ <head>
+ <title><fmt:message key="error.title"/></title>
+ <base href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/"/>
+ <meta http-equiv="Cache-Control" content="no-cache"/>
+ <meta http-equiv="Pragma" content="no-cache"/>
+ <meta http-equiv="Expires" content="-1"/>
+ </head>
+
+<%
+ PdfAsException pe;
+ if (exception != null && exception instanceof PdfAsException)
+ {
+ pe = (PdfAsException)exception;
+ SignServlet.prepareDispatchToErrorPage(pe, request);
+ } else {
+ pe = (PdfAsException)request.getAttribute("PresentableException");
+ }
+
+ String error = request.getParameter("error");
+ boolean paramInvok = false;
+ if (error == null) {
+ error = (request.getAttribute("error") == null ? "" : request.getAttribute("error").toString());
+ } else {
+ paramInvok = true;
+ }
+ String cause = request.getParameter("cause");
+ if (cause == null) {
+ cause = (request.getAttribute("cause") == null ? "" : request.getAttribute("cause").toString());
+ } else {
+ paramInvok = true;
+ }
+ boolean rb = Boolean.TRUE.equals((Boolean) request.getAttribute("resourcebundle"));
+ Object sessionInfo = session.getAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION);
+
+ boolean isExternalInvocation = false;
+ if (sessionInfo != null) {
+ if (sessionInfo instanceof SignSessionInformation) {
+ SignSessionInformation si = (SignSessionInformation) sessionInfo;
+ isExternalInvocation = (si != null && si.exappinf != null);
+ if (isExternalInvocation) {
+ String urlParams = EncodingUtil.formUrlEncode(new NameValuePair[] { new NameValuePair("error", error), new NameValuePair("cause", cause) }, "ISO8859_1");
+ if (si.exappinf.invoke_error_url == null) {
+ // prevent circular redirect
+ si.exappinf = null;
+ String redirectUrl = response.encodeRedirectURL(request.getContextPath() + "/jsp/error.jsp" + "?" + urlParams);
+ session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, redirectUrl);
+ } else {
+ String errorUrl = si.exappinf.invoke_error_url + "?" + urlParams;
+ session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, errorUrl);
+ }
+ String redirectHelper = response.encodeRedirectURL(request.getContextPath() + "/jsp/redirect_to_parent.jsp");
+ SignServletHelper.disableBrowserCacheForResponse(response);
+ response.sendRedirect(redirectHelper);
+ }
+ }
+ }
+
+%>
+
+ <body>
+ <h1><fmt:message key="common.title"/></h1>
+ <h2><fmt:message key="error.heading2"/></h2>
+ <div class="pdfasnote">
+ <% if (rb) { %>
+ <fmt:message key="<%= error %>"/>
+ <% } else { out.write(StringEscapeUtils.escapeHtml(error)); } %>
+ </div>
+ <div class="pdfasnote"><fmt:message key="error.cause"/>: <strong>
+ <% if (rb) { %>
+ <fmt:message key="<%= cause %>"/>
+ <% } else { out.write(StringEscapeUtils.escapeHtml(cause)); } %>
+ </strong></div>
+ <% if (!isExternalInvocation && !paramInvok) { %>
+ <div class="pdfasverticalspace"></div>
+ <a href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/"><fmt:message key="common.back"/></a>
+ <% } // end if %>
+ <pre style="display:none">
+ <%
+ if (pe != null) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ pe.printStackTrace(pw);
+ sw.close();
+ pw.close();
+ out.print(StringEscapeUtils.escapeHtml(sw.toString()));
+ }
+ %>
+ </pre>
+ </body>
+
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/error_verify.jsp b/pdf-as-web/src/main/webapp/jsp/error_verify.jsp new file mode 100644 index 0000000..79c5bbd --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/error_verify.jsp @@ -0,0 +1,51 @@ +<%@ page isErrorPage="true" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.LocalRequestHelper" %>
+<%@ page import="at.gv.egiz.pdfas.web.servlets.SignServlet" %>
+<%@ page import="at.knowcenter.wag.egov.egiz.exceptions.PresentableException" %>
+<%@ page import="java.io.StringWriter" %>
+<%@ page import="java.io.PrintWriter" %>
+
+<%@ include file="language.jsp" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+
+ <head>
+ <title><fmt:message key="errorverify.title"/></title>
+ <base href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/"/>
+ </head>
+
+<%
+ PresentableException pe = (PresentableException)request.getAttribute("PresentableException");
+ if (exception != null && exception instanceof PresentableException)
+ {
+ pe = (PresentableException)exception;
+ SignServlet.prepareDispatchToErrorPage(pe, request);
+ }
+
+ String error = (request.getAttribute("error") == null ? "" : request.getAttribute("error").toString());
+ String cause = (request.getAttribute("cause") == null ? "" : request.getAttribute("cause").toString());
+%>
+
+ <body>
+ <h1><fmt:message key="common.title"/></h1>
+ <h2><fmt:message key="errorverify.heading2"/></h2>
+ <div class="pdfasnote"><%= error %></div>
+ <div class="pdfasnote"><fmt:message key="errorverify.cause"/>: <strong><%= cause %></strong></div>
+ <div class="pdfasverticalspace"></div>
+ <a href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/jsp/verifyupload.jsp"><fmt:message key="common.back"/></a>
+ <pre style="display:none">
+ <%
+ if (pe != null) {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ pe.printStackTrace(pw);
+ sw.close();
+ pw.close();
+ out.print(sw);
+ }
+ %>
+ </pre>
+ </body>
+
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/language.jsp b/pdf-as-web/src/main/webapp/jsp/language.jsp new file mode 100644 index 0000000..11aad84 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/language.jsp @@ -0,0 +1,9 @@ +<%@ page import="at.gv.egiz.pdfas.web.i18n.LocaleParamFilter" %>
+<%@ page import="java.util.Locale" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%
+ Locale currentLocale = (Locale) session.getAttribute(LocaleParamFilter.LOCALE_SESSION_KEY);
+ if (currentLocale != null) {
+%>
+ <fmt:setLocale value="<%= currentLocale.getLanguage() %>"/>
+<% } // end if %>
diff --git a/pdf-as-web/src/main/webapp/jsp/null_request_page.jsp b/pdf-as-web/src/main/webapp/jsp/null_request_page.jsp new file mode 100644 index 0000000..77699e3 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/null_request_page.jsp @@ -0,0 +1,108 @@ +<%@ page contentType="text/html; charset=UTF-8"%>
+<%@ page import="at.gv.egiz.pdfas.web.servlets.UpdateFormServlet"%>
+<%@ page import="java.util.Locale" %>
+<%@ page import="at.gv.egiz.pdfas.api.commons.Constants" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.VerifySessionInformation"%>
+<%@ page import="at.gv.egiz.pdfas.web.session.SignSessionInformation" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.SessionAttributes" %>
+<%@ include file="language.jsp" %>
+<%
+ String local_request_url = (String)request.getAttribute("local_request_url");
+ String data_url = (String) request.getAttribute("data_url");
+ HttpSessionBindingListener si = (HttpSessionBindingListener) session.getAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION);
+ Locale locale = (Locale) session.getAttribute(LocaleParamFilter.LOCALE_SESSION_KEY);
+
+ boolean isExternalInvocation = false;
+ boolean isServerBKU = false;
+ if (si instanceof SignSessionInformation) {
+ SignSessionInformation ssi = (SignSessionInformation) si;
+ isExternalInvocation = ssi.exappinf != null;
+ isServerBKU = Constants.SIGNATURE_DEVICE_MOC.equals(ssi.connector);
+ } else {
+ VerifySessionInformation vsi = (VerifySessionInformation) si;
+ isExternalInvocation = vsi.exappinf != null;
+ isServerBKU = Constants.SIGNATURE_DEVICE_MOC.equals(vsi.connector);
+ }
+%>
+
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title><fmt:message key="nullrequestpage.title"/></title>
+ <script language="javascript" type="text/javascript">
+ <!--
+ function disableElement(elementId) {
+ if (elementId != null && document.getElementById(elementId)) {
+ document.getElementById(elementId).disabled = true;
+ document.getElementById(elementId).blur();
+ }
+ return(true);
+ }
+ function hitButton() {
+ document.submitform.submit();
+ disableElement("SendRequestButton");
+ if (document.getElementById("SendRequestButton")) {
+ document.getElementById("SendRequestButton").value = "<fmt:message key="nullrequestpage.button.pleasewait"/>";
+ }
+ }
+ -->
+ </script>
+ </head>
+
+ <body>
+ <% if (!isExternalInvocation) { %>
+ <h1><fmt:message key="common.title"/></h1>
+ <h2><fmt:message key="nullrequestpage.heading2"/></h2>
+ <% } // end if %>
+
+ <% if (isServerBKU) { %>
+ <% if (!isExternalInvocation) { %>
+ <div class="pdfasnote"><fmt:message key="nullrequestpage.note.server"/></div>
+ <% } // end if %>
+ <form action="<%= local_request_url %>" name="submitform" accept-charset="UTF-8" method="post" target="moccaframe">
+ <input type="hidden" name="XMLRequest" value="<?xml version='1.0' encoding='UTF-8'?><NullOperationRequest xmlns='http://www.buergerkarte.at/namespaces/securitylayer/1.2#'/>" />
+ <input type="hidden" name="DataURL" value="<%= data_url %>" />
+ <input type="hidden" name="appletWidth" value="190"/>
+ <input type="hidden" name="appletHeight" value="130"/>
+ <% if (locale != null) { %>
+ <input type="hidden" name="locale" value="<%= locale.toString() %>"/>
+ <% } // end if %>
+ </form>
+ <% if (!isExternalInvocation) { %>
+ <div class="pdfasverticalspace"></div>
+ <iframe name="moccaframe" style="border: 1px solid black;" width="190" height="152" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" src="<%= request.getContextPath() %>/jsp/please_wait.jsp" ></iframe>
+ <% } else { // end if %>
+ <iframe name="moccaframe" style="border: 1px none black;" width="190" height="152" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" src="<%= request.getContextPath() %>/jsp/please_wait.jsp" ></iframe>
+ <% } // end if %>
+
+ <% } else { %>
+ <% if (isExternalInvocation) { %>
+ <div class="pdfasnote" style="padding:10px 10px 10px 10px;"><fmt:message key="nullrequestpage.note.local"/></div>
+ <% } else { %>
+ <div class="pdfasnote"><fmt:message key="nullrequestpage.note.local"/></div>
+ <div class="pdfasverticalspace"></div>
+ <% } // end if %>
+ <form action="<%= local_request_url %>" name="submitform" accept-charset="UTF-8" method="post">
+ <input type="hidden" name="XMLRequest" value="<?xml version='1.0' encoding='UTF-8'?><NullOperationRequest xmlns='http://www.buergerkarte.at/namespaces/securitylayer/1.2#'/>" />
+ <input type="hidden" name="DataURL" value="<%= data_url %>" />
+ <% if (locale != null) { %>
+ <input type="hidden" name="locale" value="<%= locale.toString() %>"/>
+ <% } // end if %>
+ <% if (!isExternalInvocation) { %>
+ <input type="submit" id="SendRequestButton" value="<fmt:message key="nullrequestpage.button.submit"/>" />
+ <% } // end if %>
+ </form>
+ <% } // end if %>
+
+ <% if (!isExternalInvocation) { %>
+ <div class="pdfasverticalspace"></div>
+ <a href="<%= request.getContextPath() %>/"><fmt:message key="common.back"/></a>
+ <% } // end if %>
+ <script language="javascript" type="text/javascript">
+ <!--
+ window.setTimeout("hitButton()", 800);
+ -->
+ </script>
+ </body>
+
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/please_wait.jsp b/pdf-as-web/src/main/webapp/jsp/please_wait.jsp new file mode 100644 index 0000000..62c0d28 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/please_wait.jsp @@ -0,0 +1,16 @@ +<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%>
+
+<%@ include file="language.jsp" %>
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title><fmt:message key="pleasewait.title"/></title>
+</head>
+
+<body>
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
+ <tr height="100%" valign="middle">
+ <td align="center"><fmt:message key="pleasewait.body"/></td>
+ </tr>
+ </table>
+</body>
diff --git a/pdf-as-web/src/main/webapp/jsp/redirect_to_parent.jsp b/pdf-as-web/src/main/webapp/jsp/redirect_to_parent.jsp new file mode 100644 index 0000000..0930219 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/redirect_to_parent.jsp @@ -0,0 +1,33 @@ +<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%>
+<%@ page import="at.gv.egiz.pdfas.web.session.SessionAttributes" %>
+
+
+<%@ include file="language.jsp" %>
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Cache-Control" content="no-cache"/>
+ <meta http-equiv="Pragma" content="no-cache"/>
+ <meta http-equiv="Expires" content="-1"/>
+ <title><fmt:message key="pleasewait.title"/></title>
+ <%
+ String query = (String) session.getAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL);
+ session.removeAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL);
+ %>
+</head>
+
+<body>
+ <form action="<%= query %>" method="post" name="redirectform" id="redirectform" target="_top">
+ <!--
+ <p>Redirecting the browser to</p>
+ <p><code><%= query %></code></p>
+ <p>Session-ID: <code><%= session.getId() %></code></p>
+ <input type="submit" value="submit"/>
+ -->
+ </form>
+ <script language="javascript" type="text/javascript">
+ <!--
+ document.redirectform.submit();
+ -->
+ </script>
+</body>
diff --git a/pdf-as-web/src/main/webapp/jsp/results.jsp b/pdf-as-web/src/main/webapp/jsp/results.jsp new file mode 100644 index 0000000..8301e43 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/results.jsp @@ -0,0 +1,84 @@ +<%@page import="at.gv.egiz.pdfas.api.verify.VerifyResult"%>
+<%@page import="at.gv.egiz.pdfas.api.verify.VerifyResults"%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ page import="java.util.List" %>
+<%@ page import="java.util.Iterator" %>
+
+<%@ include file="language.jsp" %>
+
+<%
+ VerifyResults results = (VerifyResults) request.getAttribute("results");
+ Object bb = request.getAttribute("backbutton");
+ String btlurl = (String)request.getAttribute("btlurl");
+ boolean backbutton = true;
+ if (bb != null && bb.equals("false")) {
+ backbutton = false;
+ }
+%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+ <title><fmt:message key="common.title"/></title>
+ </head>
+ <body>
+ <h1><fmt:message key="common.title"/></h1>
+ <h2><fmt:message key="results.heading2"/></h2>
+ <%
+ Iterator resit = results.getResults().iterator();
+ while (resit.hasNext()) {
+ VerifyResult result = (VerifyResult) resit.next();
+ String subject = result.getSignerCertificate().getSubjectDN().getName();
+ String issuer = result.getSignerCertificate().getIssuerDN().getName();
+ String serial = result.getSignerCertificate().getSerialNumber().toString();
+ %>
+
+ <div class="pdfasverticalspace"></div>
+ <fieldset class="pdfasresultfieldset">
+ <legend><b><fmt:message key="results.signaturecheck"/></b></legend>
+ <div class="<%= (result.getValueCheckCode().getCode() == 0) ? "pdfasok" : "pdfasnok" %>"><%= result.getValueCheckCode().getMessage() %></div>
+ </fieldset>
+
+ <div class="pdfassmallverticalspace"></div>
+ <fieldset class="pdfasresultfieldset">
+ <legend><b><fmt:message key="results.certificatecheck"/></b></legend>
+ <table class="pdfaslisttable" cellpadding="1" cellspacing="1">
+ <tr><td class="pdfascaption"><fmt:message key="results.signer"/>:</td><td class="pdfasvalue"><%= subject %></td></tr>
+ <tr><td class="pdfascaption"><fmt:message key="results.issuer"/>:</td><td class="pdfasvalue"><%= issuer %></td></tr>
+ <tr><td class="pdfascaption"><fmt:message key="results.serialnumber"/>:</td><td class="pdfasvalue"><%= serial %></td></tr>
+ <%
+ List public_properties = result.getPublicProperties();
+ Iterator propit = public_properties.iterator();
+ while (propit.hasNext()) {
+ String public_property = (String) propit.next();
+ %>
+ <tr><td class="pdfascaption"><fmt:message key="results.property"/>:</td><td class="pdfasvalue"><%= public_property %></td></tr>
+ <%
+ }
+ %>
+ <tr><td class="pdfascaption"><fmt:message key="results.certificate"/>:</td><td class="<%= (result.getCertificateCheck().getCode() == 0) ? "pdfasok" : "pdfasnok" %>"><%= result.getCertificateCheck().getMessage() %></td></tr>
+ </table>
+ </fieldset>
+
+ <div class="pdfassmallverticalspace"></div>
+ <fieldset class="pdfasresultfieldset">
+ <legend><b><fmt:message key="results.manifestcheck"/></b></legend>
+ <div class="<%= (result.getManifestCheckCode().getCode() == 0) ? "pdfasok" : "pdfasnok" %>"><%= result.getManifestCheckCode().getMessage() %></div>
+ </fieldset>
+
+ <%
+ if (resit.hasNext()) {
+ %>
+ <br />
+ <%
+ }
+ }
+ %>
+ <div class="pdfasverticalspace"></div>
+ <% if (backbutton) { %>
+ <a href="<%= request.getContextPath() %>/jsp/verifyupload.jsp"><fmt:message key="common.back"/></a>
+ <% } %>
+ <% if (btlurl != null) { %>
+ <a href="<%=btlurl%>"><fmt:message key="common.backtolist"/></a>
+ <% } %>
+ </body>
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/signpreview.jsp b/pdf-as-web/src/main/webapp/jsp/signpreview.jsp new file mode 100644 index 0000000..d21a967 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/signpreview.jsp @@ -0,0 +1,84 @@ +<%@ page import="at.gv.egiz.pdfas.web.FormFields" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.SessionAttributes" %>
+<%@ page import="at.gv.egiz.pdfas.web.session.SignSessionInformation" %>
+<%@ page import="at.gv.egiz.pdfas.web.io.TextDataSource"%>
+<%@ page import="org.apache.commons.lang.StringEscapeUtils"%>
+<%@ page import="at.gv.egiz.pdfas.api.commons.Constants" %>
+
+<%@ include file="language.jsp" %>
+
+<%
+ SignSessionInformation si = (SignSessionInformation) session.getAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION);
+
+ String submit_url = (String)request.getAttribute("submit_url");
+
+ String signature_data_url = (String)request.getAttribute("signature_data_url");
+
+ String document_text = null;
+ if (si.mode.equals(FormFields.VALUE_MODE_TEXTUAL)) {
+// SignatureData data = si.si.getSignatureData();
+// TextDataSourceImpl tds = (TextDataSourceImpl)data.getDataSource();
+// document_text = StringEscapeUtils.escapeHtml(tds.getText());
+ document_text = StringEscapeUtils.escapeHtml(
+ (String)request.getAttribute("document_text"));
+ }
+%>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title><fmt:message key="signpreview.title"/></title>
+ </head>
+
+ <body>
+ <h1><fmt:message key="common.title"/></h1>
+ <h2><fmt:message key="signpreview.heading2"/></h2>
+ <%
+ if (si.mode.equals(FormFields.VALUE_MODE_TEXTUAL)) {
+ %>
+ <form action="<%= submit_url %>" name="submitform" enctype="multipart/form-data" accept-charset="UTF-8" method="get">
+ <pre class="pdfasnt"><%= document_text != null ? document_text : "" %></pre>
+ <% if (Constants.SIGNATURE_DEVICE_BKU.equals(si.connector)) { %>
+ <div>
+ <!-- =============================================== Start BKU-Erkennung -->
+ <iframe src="bku-erkennung/bku-erkennung_iframe.html" width="152" height="57" id="sep_iframe" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" allowtransparency="true"></iframe>
+ <!-- ================================================ Stop BKU-Erkennung -->
+ </div>
+ <% } else if (Constants.SIGNATURE_DEVICE_MOC.equals(si.connector)) { %>
+ <div>
+ <img src="images/chiperling.jpg" width="57" height="57" alt="<fmt:message key="common.mocca"/>"/>
+ </div>
+ <% } // end if %>
+ <input type="submit" value="<fmt:message key="signpreview.button.sign"/>" />
+ </form>
+ <%
+ } else {
+ %>
+ <div class="pdfasverticalspace"></div>
+ <form action="<%= signature_data_url %>" method="get" target="blank_">
+ <input type="submit" value="<fmt:message key="signpreview.showpreview"/>" />
+ </form>
+ <div class="pdfasverticalspace"></div>
+ <% if (Constants.SIGNATURE_DEVICE_BKU.equals(si.connector)) { %>
+ <div>
+ <!-- =============================================== Start BKU-Erkennung -->
+ <iframe src="bku-erkennung/bku-erkennung_iframe.html" width="152" height="57" id="sep_iframe" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" allowtransparency="true"></iframe>
+ <!-- ================================================ Stop BKU-Erkennung -->
+ </div>
+ <% } else if (Constants.SIGNATURE_DEVICE_MOC.equals(si.connector)) { %>
+ <div>
+ <img src="images/chiperling.jpg" width="57" height="57" alt="<fmt:message key="common.mocca"/>"/>
+ </div>
+ <% } // end if %>
+ <form action="<%= submit_url %>" method="get">
+ <input type="submit" value="<fmt:message key="signpreview.button.sign"/>" />
+ </form>
+ <%
+ }
+ %>
+ <div class="pdfasverticalspace"></div>
+ <a href="<%= request.getContextPath() %>/"><fmt:message key="common.back"/></a>
+ </body>
+
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/signupload.jsp b/pdf-as-web/src/main/webapp/jsp/signupload.jsp new file mode 100644 index 0000000..9bc675f --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/signupload.jsp @@ -0,0 +1,296 @@ +<%@page import="at.gv.egiz.pdfas.web.servlets.UpdateFormServlet"%>
+<%@page import="at.gv.egiz.pdfas.web.FormFields"%>
+<%@page import="at.gv.egiz.pdfas.web.session.SessionAttributes"%>
+<%@ page import="org.apache.commons.lang.StringEscapeUtils" %>
+<%@ page import="at.gv.egiz.pdfas.api.commons.Constants" %>
+<%@ page import="at.gv.egiz.pdfas.web.i18n.LanguageDecoratorMapper"%>
+<%@ page import="org.apache.commons.lang.BooleanUtils"%>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<%@ include file="language.jsp" %>
+
+<html>
+<head>
+ <%
+ boolean testMode = request.getContextPath().startsWith("/test-");
+ boolean forceTextualForMocca = false;
+
+ final String SIGNATUREPROFILE_DE_nonPDFa = "SIGNATURBLOCK_DE";
+ final String SIGNATUREPROFILE_EN_nonPDFa = "SIGNATURBLOCK_EN";
+ final String SIGNATUREPROFILE_DE_PDFa = "SIGNATURBLOCK_DE_PDFA";
+ final String SIGNATUREPROFILE_EN_PDFa = "SIGNATURBLOCK_EN_PDFA";
+
+ %>
+ <title>
+ <%
+ if (testMode) {
+ %>
+ <fmt:message key="test.common.title"/>
+ <% } else { %>
+ <fmt:message key="common.title"/>
+ <% } // end if %>
+ </title>
+ <% session.removeAttribute(SessionAttributes.SIGNED_PDF_DOCUMENT); %>
+ <script language="javascript" type="text/javascript">
+ <!--
+ function updateForm() {
+ var updateform = document.getElementById('updateform');
+ var submitform = document.getElementById('submitform');
+
+ updateform.<%= FormFields.FIELD_SIGNATURE_TYPE %>.value = submitform.<%= FormFields.FIELD_SIGNATURE_TYPE %>.value;
+ updateform.<%= FormFields.FIELD_MODE %>.value = submitform.<%= FormFields.FIELD_MODE %>.value;
+ updateform.<%= FormFields.FIELD_CONNECTOR %>.value = submitform.<%= FormFields.FIELD_CONNECTOR %>.value;
+ updateform.<%= FormFields.FIELD_PDFA_ENABLED %>.value = (submitform.<%= FormFields.FIELD_PDFA_ENABLED %>.checked == true);
+ updateform.<%= FormFields.FIELD_SOURCE %>.value = submitform.<%= FormFields.FIELD_SOURCE %>.value;
+ if (submitform.<%= FormFields.FIELD_FREETEXT %>) {
+ updateform.<%= FormFields.FIELD_FREETEXT %>.value = submitform.<%= FormFields.FIELD_FREETEXT %>.value;
+ }
+ updateform.submit();
+ return(false);
+ }
+ function submitForm(preview) {
+ var submitform = document.getElementById('submitform');
+ if (submitform.fileupload) {
+ // file
+ if (!submitform.fileupload.value) {
+ if (preview) {
+ alert('<fmt:message key="signupload.documentnotselected.preview"/>');
+ } else {
+ alert('<fmt:message key="signupload.documentnotselected"/>');
+ }
+ return(false);
+ }
+ } else {
+ // freetext
+ if (!submitform.freetext.value) {
+ if (preview) {
+ alert('<fmt:message key="signupload.nofreetext.preview"/>');
+ } else {
+ alert('<fmt:message key="signupload.nofreetext"/>');
+ }
+ return(false);
+ }
+ }
+ if (preview) {
+ submitform.<%= FormFields.FIELD_PREVIEW %>.value='true';
+ } else {
+ submitform.<%= FormFields.FIELD_PREVIEW %>.value='false';
+ }
+ return(true);
+ }
+ -->
+ </script>
+ <%
+ // PRESETS
+ // signature device
+ String device = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_DEVICE_KEY);
+ if (device == null) {
+ device = Constants.SIGNATURE_DEVICE_MOC;
+ session.setAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_DEVICE_KEY, device);
+ }
+ // signature mode
+ String mode = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_MODE_KEY);
+ if (forceTextualForMocca && Constants.SIGNATURE_DEVICE_MOC.equals(device)) {
+ mode = FormFields.VALUE_MODE_TEXTUAL;
+ session.setAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_MODE_KEY, mode);
+ }
+ if (mode == null) {
+ mode = FormFields.VALUE_MODE_BINARY;
+ session.setAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_MODE_KEY, mode);
+ }
+
+ // PDF/A-1b
+ boolean pdfa = BooleanUtils.toBoolean((String) session.getAttribute(UpdateFormServlet.UPLOADFORM_PDFA_KEY));
+ String TYPE_EN;
+ String TYPE_DE;
+ if (pdfa) {
+ TYPE_EN = SIGNATUREPROFILE_EN_PDFa;
+ TYPE_DE = SIGNATUREPROFILE_DE_PDFa;
+ } else {
+ TYPE_EN = SIGNATUREPROFILE_EN_nonPDFa;
+ TYPE_DE = SIGNATUREPROFILE_DE_nonPDFa;
+ }
+
+ // signature type
+ String type = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_TYPE_KEY);
+ if (type == null) {
+ Locale locale = (Locale) session.getAttribute(LocaleParamFilter.LOCALE_SESSION_KEY);
+ if (locale == null) {
+ locale = request.getLocale();
+ }
+ type = Locale.GERMAN.getLanguage().equals(locale.getLanguage()) ? TYPE_DE : TYPE_EN;
+ } else {
+ if (pdfa) {
+ if (SIGNATUREPROFILE_DE_nonPDFa.equals(type)) {
+ type = SIGNATUREPROFILE_DE_PDFa;
+ } else if (SIGNATUREPROFILE_EN_nonPDFa.equals(type)) {
+ type = SIGNATUREPROFILE_EN_PDFa;
+ }
+ } else {
+ if (SIGNATUREPROFILE_DE_PDFa.equals(type)) {
+ type = SIGNATUREPROFILE_DE_nonPDFa;
+ } else if (SIGNATUREPROFILE_EN_PDFa.equals(type)) {
+ type = SIGNATUREPROFILE_EN_nonPDFa;
+ }
+ }
+ }
+ session.setAttribute(UpdateFormServlet.UPLOADFORM_SIGNATURE_TYPE_KEY, type);
+
+ // source
+ String source = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_SOURCE_KEY);
+ if (source == null) {
+ source = FormFields.VALUE_SOURCE_FILE;
+ }
+ session.setAttribute(UpdateFormServlet.UPLOADFORM_SOURCE_KEY, source);
+ boolean freeText = FormFields.VALUE_SOURCE_FREETEXT.equals(source);
+
+ // freetext
+ String freeTextValue = (String) session.getAttribute(UpdateFormServlet.UPLOADFORM_FREETEXT_KEY);
+ if (freeTextValue == null) {
+ freeTextValue = "";
+ }
+ session.setAttribute(UpdateFormServlet.UPLOADFORM_FREETEXT_KEY, freeTextValue);
+
+ %>
+</head>
+<body>
+<h1>
+ <%
+ if (testMode) {
+ %>
+ <fmt:message key="test.common.title"/>
+ <% } else { %>
+ <fmt:message key="common.title"/>
+ <% } // end if %>
+</h1>
+<h2 align="left">
+ <% if (freeText) { %>
+ <fmt:message key="signupload.heading2.freetext"/>
+ <% } else { %>
+ <fmt:message key="signupload.heading2"/>
+ <% } %>
+</h2>
+<div class="pdfasnote">
+ <% if (freeText) { %>
+ <fmt:message key="signupload.selectfilenote.freetext"/>
+ <% } else { %>
+ <fmt:message key="signupload.selectfilenote"/>
+ <% } %>
+</div>
+<form name="updateform" id="updateform" accept-charset="UTF-8" method="post" action="<%= request.getContextPath() %>/UpdateForm">
+ <input type="hidden" name="<%= FormFields.FIELD_SIGNATURE_TYPE %>" value=""/>
+ <input type="hidden" name="<%= FormFields.FIELD_MODE %>" value=""/>
+ <input type="hidden" name="<%= FormFields.FIELD_CONNECTOR %>" value=""/>
+ <input type="hidden" name="<%= FormFields.FIELD_PDFA_ENABLED %>" value=""/>
+ <input type="hidden" name="<%= FormFields.FIELD_SOURCE %>" value=""/>
+ <% if (freeText) { %>
+ <input type="hidden" name="<%= FormFields.FIELD_FREETEXT %>" value=""/>
+ <% } // end if %>
+</form>
+<form name="submitform" id="submitform"
+ enctype="multipart/form-data"
+ accept-charset="UTF-8"
+ method="post"
+ action="<%= request.getContextPath() %>/Sign">
+ <table border="0" cellspacing="0" cellpadding="4" id="pdfasupperformtable">
+ <tr>
+ <td align="left" nowrap="nowrap"><label><fmt:message key="signupload.signaturetype"/>:</label></td>
+ <td align="left">
+ <select class="field" name="<%= FormFields.FIELD_SIGNATURE_TYPE %>" onchange="return updateForm();">
+ <option value="<%= TYPE_DE %>" <%= TYPE_DE.equals(type) ? "selected=\"selected\"" : "" %>><fmt:message key="signupload.signaturetype.signaturblock.de"/></option>
+ <option value="<%= TYPE_EN %>" <%= TYPE_EN.equals(type) ? "selected=\"selected\"" : "" %>><fmt:message key="signupload.signaturetype.signaturblock.en"/></option>
+ </select>
+ <!-- %= // FormFields.generateTypeSelectBox() % -->
+ <span style="padding-left: 20px; 1px solid black;"></span>
+ <input type="checkbox" name="<%= FormFields.FIELD_PDFA_ENABLED %>" value="true" <%= pdfa ? "checked=\"checked\"" : "" %> onclick="return updateForm();"/> <fmt:message key="signupload.pdfa"/>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" nowrap="nowrap"><label><fmt:message key="signupload.signaturemode"/>:</label></td>
+ <td align="left">
+ <% if (forceTextualForMocca && Constants.SIGNATURE_DEVICE_MOC.equals(device)) {%>
+ <fmt:message key="common.textual"/>
+ <input type="hidden" name="<%= FormFields.FIELD_MODE %>" value="<%= FormFields.VALUE_MODE_TEXTUAL %>"/>
+ <% } else { %>
+ <select name="<%= FormFields.FIELD_MODE %>" onchange="return updateForm();">
+ <option value="<%= FormFields.VALUE_MODE_BINARY %>" <%= FormFields.VALUE_MODE_BINARY.equals(mode) ? "selected=\"selected\"" : "" %>><fmt:message key="common.binary"/></option>
+ <option value="<%= FormFields.VALUE_MODE_TEXTUAL %>" <%= FormFields.VALUE_MODE_TEXTUAL.equals(mode) ? "selected=\"selected\"" : "" %>><fmt:message key="common.textual"/></option>
+ <!--
+ <option value="<%= FormFields.VALUE_MODE_DETACHED %>">detached</option>
+ -->
+ </select>
+ <% } %>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" nowrap="nowrap"><label><fmt:message key="signupload.signaturedevice"/>:</label></td>
+ <td align="left">
+ <select name="<%= FormFields.FIELD_CONNECTOR %>" onchange="return updateForm();">
+ <option value="<%= Constants.SIGNATURE_DEVICE_BKU %>" <%= Constants.SIGNATURE_DEVICE_BKU.equals(device) ? "selected=\"selected\"" : "" %>><fmt:message key="common.bku"/></option>
+ <option value="<%= Constants.SIGNATURE_DEVICE_MOC %>" <%= Constants.SIGNATURE_DEVICE_MOC.equals(device) ? "selected=\"selected\"" : "" %>><fmt:message key="common.mocca"/></option>
+ </select>
+ </td>
+ </tr>
+ <!--
+ <tr>
+ <td align="left" nowrap="nowrap"><label><fmt:message key="signupload.file"/>:</label></td>
+ <td align="left"><input size="50" type="file" id="fileupload" name="<%= FormFields.FIELD_UPLOAD %>" accept="application/pdf"/></td>
+ </tr>
+ -->
+ <tr>
+ <td align="left" nowrap="nowrap" style="vertical-align: top;">
+ <select name="<%= FormFields.FIELD_SOURCE %>" onchange="return updateForm();">
+ <option value="<%= FormFields.VALUE_SOURCE_FILE %>" <%= FormFields.VALUE_SOURCE_FILE.equals(source) ? "selected=\"selected\"" : "" %>><fmt:message key="signupload.file"/></option>
+ <option value="<%= FormFields.VALUE_SOURCE_FREETEXT %>" <%= FormFields.VALUE_SOURCE_FREETEXT.equals(source) ? "selected=\"selected\"" : "" %>><fmt:message key="signupload.freetext"/></option>
+ </select>
+ </td>
+ <td align="left">
+ <% if (freeText) { %>
+ <textarea class="freetext" id="freetext" name="<%= FormFields.FIELD_FREETEXT %>"><%= StringEscapeUtils.escapeHtml(freeTextValue) %></textarea>
+ <% } else { %>
+ <input size="50" type="file" id="fileupload" name="<%= FormFields.FIELD_UPLOAD %>" accept="application/pdf"/>
+ <% } // end if freetext %>
+ </td>
+ </tr>
+ </table>
+ <% if ((!freeText && (FormFields.VALUE_MODE_TEXTUAL.equals(mode))) || pdfa) { %>
+ <div class="pdfasnote"><span class="pdfasemphasis">
+ <fmt:message key="signupload.note.prefix"/>:</span>
+ <% if ((FormFields.VALUE_MODE_TEXTUAL.equals(mode))) { %>
+ <% if (!freeText) { %><fmt:message key="signupload.note.file"/><% } %> <fmt:message key="signupload.note"/>
+ <% } // end if %>
+ <% if (pdfa) { %> <fmt:message key="signupload.note.pdfa"/><% } %>
+ </div>
+ <% } // end if %>
+
+ <input type="hidden" name="<%= FormFields.FIELD_DOWNLOAD %>" value="<%= FormFields.VALUE_DOWNLOAD_ATTACHMENT %>"/>
+ <input type="hidden" name="<%= FormFields.FIELD_PREVIEW %>" value="false" />
+
+ <div class="pdfasverticalspace"></div>
+
+ <jsp:include page="SIGNATURBLOCK.jsp"/>
+
+ <div class="pdfasnote"><fmt:message key="signupload.noteonsigmark"/></div>
+ <% if (Constants.SIGNATURE_DEVICE_BKU.equals(device)) { %>
+ <div>
+ <!-- =============================================== Start BKU-Erkennung -->
+ <iframe src="<%= request.getContextPath() %>/bku-erkennung/bku-erkennung_iframe.html" width="152" height="57" id="sep_iframe" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" allowtransparency="true"></iframe>
+ <!-- ================================================ Stop BKU-Erkennung -->
+ </div>
+ <% } else if (Constants.SIGNATURE_DEVICE_MOC.equals(device)) { %>
+ <div>
+ <img src="images/chiperling.jpg" width="57" height="57" alt="<fmt:message key="common.mocca"/>"/>
+ </div>
+ <% } else { %>
+ <div class="pdfasverticalspace"></div>
+ <% } // end if %>
+ <div>
+ <input type="submit" value="<fmt:message key="signupload.button.sign"/>" onclick="return submitForm(false);"/>
+ <input type="submit" value="<fmt:message key="signupload.button.preview"/>" onclick="return submitForm(true);"/>
+ </div>
+
+</form>
+
+</body>
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/verifylist.jsp b/pdf-as-web/src/main/webapp/jsp/verifylist.jsp new file mode 100644 index 0000000..2ebca39 --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/verifylist.jsp @@ -0,0 +1,73 @@ +<%@ page import="at.gv.egiz.pdfas.web.FormFields" %>
+<%@ page import="at.gv.egiz.pdfas.web.servlets.VerifyPreviewServlet"%>
+<%@ page import="at.gv.egiz.pdfas.api.commons.SignatureInformation"%>
+<%@ page import="at.gv.egiz.pdfas.web.session.VerifySessionInformation"%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ page import="java.util.List" %>
+<%@ page errorPage="error_verify.jsp" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.SessionHelper"%>
+<%@ include file="language.jsp" %>
+<%
+
+ VerifySessionInformation si = (VerifySessionInformation) SessionHelper.getSession(request);
+
+ List signature_holders = si.analyzeResult.getSignatures();
+
+%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title><fmt:message key="common.title"/></title>
+ </head>
+ <body>
+ <h1><fmt:message key="common.title"/></h1>
+ <%
+ if (signature_holders.size() > 1) {
+ %>
+ <h2><fmt:message key="verifylist.heading2.plural"/></h2>
+ <% } else { %>
+ <h2><fmt:message key="verifylist.heading2.singular"/></h2>
+ <%
+ }
+ %>
+ <%
+ for (int i = 0; i < signature_holders.size(); i++) {
+ SignatureInformation sigInfo = (SignatureInformation) signature_holders.get(i);
+ %>
+ <div class="pdfasverticalspace"></div>
+ <div class="pdfaslisttablecontainer">
+ <%= VerifyPreviewServlet.renderRequiredKeysText(getServletContext(), sigInfo) %>
+ <form action="<%= response.encodeURL(request.getContextPath() + "/VerifyPreview") %>"
+ accept-charset="UTF-8"
+ method="get"
+ style="float:left;">
+ <input type="hidden" name="<%= FormFields.FIELD_VERIFY_WHICH %>" value="<%= i %>" />
+ <input type="hidden" name="<%= FormFields.FIELD_PREVIEW %>" value="false" />
+ <input type="submit" value="<fmt:message key="verifylist.button.verifysinglesignature"/>" />
+ </form>
+ <form action="<%= response.encodeURL(request.getContextPath() + "/VerifyPreview") %>"
+ accept-charset="UTF-8"
+ method="get"
+ style="float:left;">
+ <input type="hidden" name="<%= FormFields.FIELD_VERIFY_WHICH %>" value="<%= i %>" />
+ <input type="hidden" name="<%= FormFields.FIELD_PREVIEW %>" value="true" />
+ <input type="submit" value="<fmt:message key="verifylist.button.preview"/>" />
+ </form>
+ </div>
+ <%
+ }
+ %>
+ <div class="pdfasverticalspace"></div>
+ <div class="pdfasverticalspace"></div>
+ <form action="<%= response.encodeURL(request.getContextPath() + "/VerifyPreview") %>"
+ accept-charset="UTF-8"
+ method="get">
+ <input type="hidden" name="<%= FormFields.FIELD_VERIFY_WHICH %>" value="<%= FormFields.VALUE_VERIFY_WHICH_ALL %>" />
+ <input type="hidden" name="<%= FormFields.FIELD_PREVIEW %>" value="false" />
+ <input type="submit" value="<fmt:message key="verifylist.button.verifyallsignatures"/>" />
+ </form>
+ <div class="pdfasverticalspace"></div>
+ <a href="<%= request.getContextPath() %>/jsp/verifyupload.jsp"><fmt:message key="common.back"/></a>
+ </body>
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/verifypreview.jsp b/pdf-as-web/src/main/webapp/jsp/verifypreview.jsp new file mode 100644 index 0000000..a65aa4e --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/verifypreview.jsp @@ -0,0 +1,60 @@ +<%@page import="at.gv.egiz.pdfas.api.commons.SignatureInformation"%>
+<%@page import="at.gv.egiz.pdfas.web.servlets.VerifyPreviewServlet"%>
+<%@page import="at.gv.egiz.pdfas.web.FormFields"%>
+<%@page import="at.gv.egiz.pdfas.web.session.VerifySessionInformation"%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ page errorPage="error_verify.jsp" %>
+<%@ page import="java.util.List" %>
+<%@ page import="at.gv.egiz.pdfas.web.helper.SessionHelper"%>
+<%@ include file="language.jsp" %>
+<%
+ String btlurl = (String)request.getAttribute("btlurl");
+
+ VerifySessionInformation si = (VerifySessionInformation) SessionHelper.getSession(request);
+
+ List signature_holders = si.analyzeResult.getSignatures();
+ Integer ver_wh = (Integer) request.getAttribute(FormFields.FIELD_VERIFY_WHICH);
+ int verify_which = ver_wh.intValue();
+ SignatureInformation signatureInfo = (SignatureInformation) signature_holders.get(verify_which);
+ String signedText = (String)request.getAttribute(FormFields.FIELD_SIGNED_TEXT);
+%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+ <title><fmt:message key="common.title"/></title>
+ <script type="text/javascript">
+ <!--
+ function initSigValues() {
+ <%= VerifyPreviewServlet.renderRequiredKeysJavaScript(getServletContext(), signatureInfo, "") %>
+ }
+ -->
+ </script>
+</head>
+<body">
+<h1><fmt:message key="common.title"/></h1>
+<h2><fmt:message key="verifypreview.heading2"/></h2>
+<form action="<%= response.encodeURL(request.getContextPath() + "/VerifyPreview") %>"
+ name="submitform"
+ enctype="multipart/form-data"
+ accept-charset="UTF-8"
+ method="post">
+ <input type="hidden" name="<%= FormFields.FIELD_VERIFY_WHICH %>" value="<%= verify_which %>" />
+ <div class="pdfasnote"><label><fmt:message key="verifypreview.reconstruction"/>:</label></div>
+ <div class="pdfasverticalspace"></div>
+ <textarea class="pdfaspreviewfield" rows="14" name="<%= FormFields.FIELD_RAW_DOCUMENT_TEXT %>"><%= signedText %></textarea>
+ <%= VerifyPreviewServlet.renderRequiredKeys(getServletContext(), signatureInfo, "", false) %>
+ <br />
+ <input type="hidden" name="verify" value="false" />
+ <input type="submit" value="<fmt:message key="verifypreview.applyvalues"/>" />
+ <input type="submit" value="<fmt:message key="verifypreview.applyvaluesandverify"/>" onclick="document.submitform.verify.value='true'" />
+</form>
+<div class="pdfasverticalspace"></div>
+<a href="<%= request.getContextPath() %>/jsp/verifyupload.jsp"><fmt:message key="common.back"/></a>
+<a href="<%=btlurl%>"><fmt:message key="common.backtolist"/></a>
+ <script language="javascript" type="text/javascript">
+ <!--
+ initSigValues();
+ -->
+ </script>
+</body>
+</html>
diff --git a/pdf-as-web/src/main/webapp/jsp/verifyupload.jsp b/pdf-as-web/src/main/webapp/jsp/verifyupload.jsp new file mode 100644 index 0000000..34e791e --- /dev/null +++ b/pdf-as-web/src/main/webapp/jsp/verifyupload.jsp @@ -0,0 +1,41 @@ +<%@page import="at.gv.egiz.pdfas.web.FormFields"%>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+<%@ include file="language.jsp" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+ <title><fmt:message key="common.title"/></title>
+</head>
+<body>
+<h1><fmt:message key="common.title"/></h1>
+<h2><fmt:message key="verifyupload.heading2"/></h2>
+<div class="pdfasnote"><fmt:message key="verifyupload.note"/><br/></div>
+<form name="submitform" enctype="multipart/form-data" method="post" action="<%= request.getContextPath() %>/Verify" accept-charset="UTF-8">
+ <textarea class="pdfaspreviewfield" rows="14" name="<%= FormFields.FIELD_UPLOAD %>"></textarea>
+ <table border="0" cellspacing="0" cellpadding="4" id="pdfasupperformtable">
+ <tr>
+ <td nowrap="nowrap"><label><fmt:message key="verifyupload.verifydevice"/>:</label></td>
+ <td><%= FormFields.generateConnectorSelectBox(getServletContext()) %></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label><fmt:message key="verifyupload.verifymode"/>:</label></td>
+ <td><span><fmt:message key="common.textual"/></span></td>
+ </tr>
+ </table>
+
+ <div>
+ <!-- =============================================== Start BKU-Erkennung -->
+ <iframe src="<%= request.getContextPath() %>/bku-erkennung/bku-erkennung_iframe.html" width="152" height="57" id="sep_iframe" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" allowtransparency="true"></iframe>
+ <!-- ================================================ Stop BKU-Erkennung -->
+ </div>
+ <input type="hidden" name="<%= FormFields.FIELD_PREVIEW %>" value="false" />
+ <input type="submit" value="<fmt:message key="verifyupload.button.verifyallsignatures"/>" />
+ <input type="submit" value="<fmt:message key="verifyupload.button.listsignatures"/>" onclick="document.submitform.<%= FormFields.FIELD_PREVIEW %>.value='true'" />
+
+</form>
+<div class="pdfasverticalspace"></div>
+<a href="<%= request.getContextPath() %>/"><fmt:message key="common.back"/></a>
+</body>
+</html>
\ No newline at end of file diff --git a/pdf-as-web/src/main/webapp/sitemesh/standalone.jsp b/pdf-as-web/src/main/webapp/sitemesh/standalone.jsp new file mode 100644 index 0000000..1349a67 --- /dev/null +++ b/pdf-as-web/src/main/webapp/sitemesh/standalone.jsp @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8" ?>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
+<%@ page import="at.gv.egiz.pdfas.web.helper.LocalRequestHelper" %>
+
+<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+
+<html>
+
+ <%
+ boolean testMode = request.getContextPath().startsWith("/test-");
+ %>
+
+ <head>
+ <decorator:head/>
+ <link rel="stylesheet" type="text/css" href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/css/pdfas-styles.css" />
+ <title><fmt:message key="<%= testMode ? \"test.common.title\" : \"common.title\" %>"/></title>
+ <link rel="stylesheet" type="text/css" href="<%=LocalRequestHelper.getLocalContextAddress(request,response)%>/css/pdfas-standalone-styles.css" />
+ </head>
+
+ <body>
+ <table cellpadding="0" cellspacing="0" border="0" width="100%">
+ <tr>
+ <td align="center" valign="middle">
+ <table cellpadding="0" cellspacing="0" border="0" width="700px">
+ <tr>
+ <td align="left"><decorator:body/></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+
+</html>
|