
org.ldaptive.provider.jldap.JLdapProviderConfig Maven / Gradle / Ivy
The newest version!
/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.provider.jldap;
import java.util.Arrays;
import javax.net.ssl.SSLSocketFactory;
import com.novell.ldap.LDAPConstraints;
import com.novell.ldap.LDAPControl;
import org.ldaptive.ResultCode;
import org.ldaptive.provider.ControlProcessor;
import org.ldaptive.provider.ProviderConfig;
/**
* Contains configuration data for the JLdap provider.
*
* @author Middleware Services
*/
public class JLdapProviderConfig extends ProviderConfig
{
/** Connection constraints. */
private LDAPConstraints ldapConstraints;
/** Search result codes to ignore. */
private ResultCode[] searchIgnoreResultCodes;
/** ldap socket factory used for SSL and TLS. */
private SSLSocketFactory sslSocketFactory;
/** Default constructor. */
public JLdapProviderConfig()
{
setOperationExceptionResultCodes(ResultCode.CONNECT_ERROR);
setControlProcessor(new ControlProcessor<>(new JLdapControlHandler()));
searchIgnoreResultCodes = new ResultCode[] {
ResultCode.TIME_LIMIT_EXCEEDED,
ResultCode.SIZE_LIMIT_EXCEEDED,
};
}
/**
* Returns the connection constraints.
*
* @return ldap connection constraints
*/
public LDAPConstraints getLDAPConstraints()
{
return ldapConstraints;
}
/**
* Sets the connection constraints.
*
* @param constraints ldap connection constraints
*/
public void setLDAPConstraints(final LDAPConstraints constraints)
{
checkImmutable();
logger.trace("setting ldapConstraints: {}", constraints);
ldapConstraints = constraints;
}
/**
* Returns the search ignore result codes.
*
* @return result codes to ignore
*/
public ResultCode[] getSearchIgnoreResultCodes()
{
return searchIgnoreResultCodes;
}
/**
* Sets the search ignore result codes.
*
* @param codes to ignore
*/
public void setSearchIgnoreResultCodes(final ResultCode[] codes)
{
checkImmutable();
logger.trace("setting searchIgnoreResultCodes: {}", Arrays.toString(codes));
searchIgnoreResultCodes = codes;
}
/**
* Returns the SSL socket factory to use for TLS/SSL connections.
*
* @return SSL socket factory
*/
public SSLSocketFactory getSslSocketFactory()
{
return sslSocketFactory;
}
/**
* Sets the SSL socket factory to use for TLS/SSL connections.
*
* @param sf SSL socket factory
*/
public void setSslSocketFactory(final SSLSocketFactory sf)
{
checkImmutable();
logger.trace("setting sslSocketFactory: {}", sf);
sslSocketFactory = sf;
}
@Override
public String toString()
{
return
String.format(
"[%s@%d::operationExceptionResultCodes=%s, properties=%s, controlProcessor=%s, ldapConstraints=%s, " +
"searchIgnoreResultCodes=%s, sslSocketFactory=%s]",
getClass().getName(),
hashCode(),
Arrays.toString(getOperationExceptionResultCodes()),
getProperties(),
getControlProcessor(),
ldapConstraints,
Arrays.toString(searchIgnoreResultCodes),
sslSocketFactory);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy