package at.knowcenter.wag.egov.egiz.ldap.api; import iaik.asn1.ObjectID; import iaik.security.ecc.provider.ECCProvider; import iaik.security.provider.IAIK; import iaik.utils.RFC2253NameParser; import at.knowcenter.wag.egov.egiz.ldap.client.LDAPIssuerNameFilter; import at.knowcenter.wag.egov.egiz.sig.LDAPAPI; /** * @author Thomas Knall */ public abstract class LDAPAPIFactory { private static LDAPAPIFactory ldapAPIfactoryInstance; protected LDAPAPIFactory() { IAIK.addAsProvider(); ECCProvider.addAsProvider(); // Does not conform with PKIX, but is used by belgium citizen card RFC2253NameParser.register("SERIALNUMBER", ObjectID.serialNumber); } public static synchronized LDAPAPIFactory getInstance(LDAPIssuerNameFilter ldapIssuerNameFilter) { if (ldapAPIfactoryInstance == null) { ldapAPIfactoryInstance = new LDAPAPIFactoryImpl(ldapIssuerNameFilter); } return ldapAPIfactoryInstance; } public static LDAPAPIFactory getInstance() { return getInstance(null); } public abstract LDAPAPI createLDAPAPI(String implClassURI) throws LDAPAPIException; }