diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-07-15 18:49:39 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-07-15 18:49:39 +0200 |
commit | 308bb7903ca0a293438bf4039a194ec098645ffd (patch) | |
tree | 08cf1e7d2ac37a48d50dfd212717251f58c80df9 /pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java | |
parent | 7194ad1f6a22507867f471fd6c8a37c6596d4b8a (diff) | |
download | pdf-as-4-308bb7903ca0a293438bf4039a194ec098645ffd.tar.gz pdf-as-4-308bb7903ca0a293438bf4039a194ec098645ffd.tar.bz2 pdf-as-4-308bb7903ca0a293438bf4039a194ec098645ffd.zip |
added JSON capabilities to Verify Servlet
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java')
-rw-r--r-- | pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java new file mode 100644 index 00000000..c53b0c4d --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java @@ -0,0 +1,98 @@ +package at.gv.egiz.pdfas.web.helper; + +import iaik.x509.X509Certificate; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; + +public class VerifyResultHTMLEncoder implements VerifyResultEncoder { + + public void produce(HttpServletRequest request, + HttpServletResponse response, List<VerifyResult> results) throws IOException { + StringBuilder sb = new StringBuilder(); + + sb.append("<html><head><title></title></head><body>"); + sb.append("<h3>Verification Results for: " + PdfAsHelper.getPDFFileName(request) + "</h3>"); + sb.append("<table style=\"width:100%\" border='1' >"); + + sb.append("<tr>"); + + sb.append("<th>Signature</th>"); + sb.append("<th>Processed</th>"); + sb.append("<th>Signed By</th>"); + sb.append("<th>Cert Code</th>"); + sb.append("<th>Cert Message</th>"); + sb.append("<th>Value Code</th>"); + sb.append("<th>Value Message</th>"); + sb.append("<th>Error</th>"); + sb.append("<th>Certificate</th>"); + sb.append("<th>Signed Data</th>"); + + sb.append("</tr>"); + + for (int i = 0; i < results.size(); i++) { + VerifyResult result = results.get(i); + sb.append("<tr>"); + + sb.append("<td>" + i + "</td>"); + + if (result.isVerificationDone()) { + sb.append("<td>YES</td>"); + int certCode = result.getCertificateCheck().getCode(); + String certMessage = result.getCertificateCheck().getMessage(); + + int valueCode = result.getValueCheckCode().getCode(); + String valueMessage = result.getValueCheckCode().getMessage(); + + Exception e = result.getVerificationException(); + + X509Certificate cert = (X509Certificate)result.getSignerCertificate(); + + sb.append("<td>" + cert.getSubjectDN().getName() + "</td>"); + sb.append("<td>" + certCode + "</td>"); + sb.append("<td>" + certMessage + "</td>"); + sb.append("<td>" + valueCode + "</td>"); + sb.append("<td>" + valueMessage + "</td>"); + if(e != null) { + sb.append("<td>" + e.getMessage() + "</td>"); + } else { + sb.append("<td>-</td>"); + } + if(result.isQualifiedCertificate()) { + sb.append("<td><a href=\"signCert?SIGID=" + i + "\">here</a> (QC)</td>"); + } else { + sb.append("<td><a href=\"signCert?SIGID=" + i + "\">here</a></td>"); + } + sb.append("<td><a href=\"signData?SIGID=" + i + "\">here</a></td>"); + + } else { + sb.append("<td>NO</td>"); + sb.append("<td>-</td>"); + sb.append("<td>-</td>"); + sb.append("<td>-</td>"); + sb.append("<td>-</td>"); + sb.append("<td>-</td>"); + sb.append("<td>-</td>"); + sb.append("<td>-</td>"); + sb.append("<td>-</td>"); + } + + + sb.append("</tr>"); + } + sb.append("</table>"); + sb.append("</body></html>"); + + response.setContentType("text/html"); + OutputStream os = response.getOutputStream(); + os.write(sb.toString().getBytes()); + os.close(); + } + +} |