/**
* Copyright 2006 by Know-Center, Graz, Austria
* PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a
* joint initiative of the Federal Chancellery Austria and Graz University of
* Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
* the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use this work except in compliance with the Licence.
* You may obtain a copy of the Licence at:
* http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text
* file for details on the various modules and licenses.
* The "NOTICE" text file is part of the distribution. Any derivative works
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.knowcenter.wag.egov.egiz.ldap.client;
import iaik.x509.X509Certificate;
import java.math.BigInteger;
import java.net.URL;
/**
* @author Thomas Knall
*/
public interface LDAPClient {
/**
* Returns the ldap url this client was registered for.
*
* @return The ldap url linked with this client.
*/
URL getUrl();
/**
* Sets the ldap url this client should be registered for.
*
* @param ldapURL
* The ldap url linked with this client.
*/
void setUrl(URL ldapURL);
/**
* Returns the attribute name that represents the serial number.
*
* @return The attribute name representing the serial number.
*/
String getSerialNumberAttrName();
/**
* Sets the attribute name that represents the serial number.
*
* @param serialNumberAttrName
* The attribute name representing the serial number.
*/
void setSerialNumberAttrName(String serialNumberAttrName);
/**
* Retrieves the certificate(s) matching the filter {@code filter}.
*
* @param filter
* The filter for the ldap request.
* @return An array of certificates matching the filter {@code filter}.
* @throws LDAPException
* Is thrown in case of error.
*/
X509Certificate[] retrieveCertificates(String filter) throws LDAPException;
/**
* Retriebes the certificate with the serial number {@code serialNumber}.
*
* @param serialNumber
* The serial number of the required certificate.
* @return The certificate with the serial number {@code serialNumber}.
* @throws LDAPException
* Is thrown in case of error.
*/
X509Certificate retrieveCertificate(BigInteger serialNumber) throws LDAPException;
}