aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-09-26 15:49:26 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-09-26 15:49:26 +0200
commitd85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578 (patch)
tree216c51de424c24fdf7821d9047fdc266ce042b94 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java
parentfc44d4bcad00192f0df8f6086737b9b126094dcd (diff)
downloadpdf-as-4-d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578.tar.gz
pdf-as-4-d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578.tar.bz2
pdf-as-4-d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578.zip
forgotten changes for initial code commit
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java
new file mode 100644
index 00000000..f30c326d
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java
@@ -0,0 +1,46 @@
+package at.gv.egiz.pdfas.lib.impl.stamping;
+
+import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings;
+import at.gv.egiz.pdfas.common.utils.DNUtils;
+import at.gv.egiz.pdfas.common.utils.OgnlUtils;
+import iaik.x509.X509Certificate;
+import ognl.OgnlContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.naming.InvalidNameException;
+import javax.naming.ldap.LdapName;
+import java.util.Map;
+
+public class CertificateResolver implements IResolver {
+
+ private static final Logger logger = LoggerFactory.getLogger(CertificateResolver.class);
+
+ private OgnlContext ctx;
+ private X509Certificate certificate;
+
+ public CertificateResolver(X509Certificate certificate) {
+ this.certificate = certificate;
+ this.ctx = new OgnlContext();
+
+ try {
+ Map<String, String> issuerDNMap = DNUtils.dnToMap(certificate.getIssuerDN().getName());
+ this.ctx.put("issuer", issuerDNMap);
+ } catch (InvalidNameException e) {
+ logger.error("Failed to build issuer Map", e);
+ }
+
+ try {
+ Map<String, String> subjectDNMap = DNUtils.dnToMap(certificate.getSubjectDN().getName());
+ this.ctx.put("subject", subjectDNMap);
+ } catch (InvalidNameException e) {
+ logger.error("Failed to build subject Map", e);
+ }
+
+ }
+
+ public String resolve(String key, String value, SignatureProfileSettings settings) {
+ return OgnlUtils.resolvsOgnlExpression(value, this.ctx);
+ }
+
+}