From f1db00ea7fce12a186a3c5070d7f46298224c57a Mon Sep 17 00:00:00 2001 From: tknall Date: Wed, 13 Dec 2006 16:00:50 +0000 Subject: ldap support improved git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@20 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../wag/egov/egiz/sig/SignatureObject.java | 32 ++++++++++++++++++---- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java') diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java index b00a3cb..9a7a036 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java @@ -17,6 +17,10 @@ */ package at.knowcenter.wag.egov.egiz.sig; +import iaik.asn1.structures.Name; +import iaik.utils.RFC2253NameParser; +import iaik.utils.RFC2253NameParserException; + import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -43,6 +47,7 @@ import at.knowcenter.wag.egov.egiz.exceptions.SignatureTypesException; import at.knowcenter.wag.egov.egiz.framework.SignatorFactory; import at.knowcenter.wag.egov.egiz.ldap.api.LDAPAPIException; import at.knowcenter.wag.egov.egiz.ldap.api.LDAPAPIFactory; +import at.knowcenter.wag.egov.egiz.ldap.client.LDAPIssuerNameFilter; import at.knowcenter.wag.egov.egiz.table.Entry; import at.knowcenter.wag.egov.egiz.table.Style; import at.knowcenter.wag.egov.egiz.table.Table; @@ -176,6 +181,25 @@ public class SignatureObject implements Serializable *

*/ protected String raw_signature_response = null; + + /** + * Filters the issuer name in order to find matches. + * @author tknall + * @see {@link normalizeIssuer} + */ + private LDAPIssuerNameFilter issuerNameFilter = new LDAPIssuerNameFilter() { + public Name applyFilter(Name name) { + RFC2253NameParser parser = new RFC2253NameParser(normalizeIssuer(name.getName())); + try { + name = parser.parse(); + } catch (RFC2253NameParserException e) { + logger_.error(e); + } + return name; + } + }; + + /** * The empty constructor. It initilize the normlizer, load the settings and @@ -889,13 +913,12 @@ public class SignatureObject implements Serializable * comparison with registered ldap mappings.) * @param issuer The issuer. * @return normalized issuer + * @see {@link issuerNameFilter} * @author tknall */ private String normalizeIssuer(String issuer) { issuer = normalizer_.normalize(issuer); issuer = removeAllWhiteSpaces(issuer); - // important note: if method is changed don't forget to adjust LDAPAPIImpl otherwise - // ldap mappings will not match return issuer; } @@ -1085,12 +1108,11 @@ public class SignatureObject implements Serializable try { // note: in case of implClassURI==null the default implementation // at.knowcenter.wag.egov.egiz.ldap.api.LDAPAPIImpl is used - ldapAPIImpl = LDAPAPIFactory.getInstance().createLDAPAPI(implClassURI); + ldapAPIImpl = LDAPAPIFactory.getInstance(issuerNameFilter).createLDAPAPI(implClassURI); } catch (LDAPAPIException e) { throw new RuntimeException(e); } - String normalized_issuer = normalizeIssuer(issuer); - return ldapAPIImpl.loadBase64CertificateFromLDAP(serialNumber, normalized_issuer); + return ldapAPIImpl.loadBase64CertificateFromLDAP(serialNumber, issuer); // STOP modification by TK } -- cgit v1.2.3