aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java
diff options
context:
space:
mode:
authortknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2006-12-13 16:00:50 +0000
committertknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2006-12-13 16:00:50 +0000
commitf1db00ea7fce12a186a3c5070d7f46298224c57a (patch)
tree57580548de8b9841aa4f4008f6b08b54f2789659 /src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java
parentaf0a15de2b1228e65872cb74935d933735133e5f (diff)
downloadpdf-as-3-f1db00ea7fce12a186a3c5070d7f46298224c57a.tar.gz
pdf-as-3-f1db00ea7fce12a186a3c5070d7f46298224c57a.tar.bz2
pdf-as-3-f1db00ea7fce12a186a3c5070d7f46298224c57a.zip
ldap support improved
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@20 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java')
-rw-r--r--src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureObject.java32
1 files changed, 27 insertions, 5 deletions
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
* </p>
*/
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
}