diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-09-26 15:49:26 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-09-26 15:49:26 +0200 |
commit | d85cbb74b8fe9c2bcc31a4b55ad17ae889d6b578 (patch) | |
tree | 216c51de424c24fdf7821d9047fdc266ce042b94 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateResolver.java | |
parent | fc44d4bcad00192f0df8f6086737b9b126094dcd (diff) | |
download | pdf-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.java | 46 |
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); + } + +} |