org.apache.directory.server.ldap
Class LdapService

java.lang.Object
  extended by org.apache.directory.server.protocol.shared.AbstractProtocolService
      extended by org.apache.directory.server.protocol.shared.DirectoryBackedService
          extended by org.apache.directory.server.ldap.LdapService
All Implemented Interfaces:
ProtocolService

public class LdapService
extends DirectoryBackedService

An LDAP protocol provider implementation which dynamically associates handlers.

Version:
$Rev: 688548 $
Author:
Apache Directory Project
'XBean'

Field Summary
static int NO_SIZE_LIMIT
          Value (0) for configuration where size limit is unlimited.
static int NO_TIME_LIMIT
          Value (0) for configuration where time limit is unlimited.
static java.lang.String SERVICE_NAME
          the constant service name of this ldap protocol provider
 
Constructor Summary
LdapService()
          Creates an LDAP protocol provider.
 
Method Summary
 void addExtendedOperationHandler(ExtendedOperationHandler eoh)
          Registeres the specified ExtendedOperationHandler to this protocol provider to provide a specific LDAP extended operation.
 MechanismHandler addSaslMechanismHandler(java.lang.String mechanism, MechanismHandler handler)
           
 org.apache.mina.handler.demux.MessageHandler<org.apache.directory.shared.ldap.message.AbandonRequest> getAbandonHandler()
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.AddRequest> getAddHandler()
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.BindRequest> getBindHandler()
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.CompareRequest> getCompareHandler()
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.DeleteRequest> getDeleteHandler()
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.ExtendedRequest> getExtendedHandler()
           
 ExtendedOperationHandler getExtendedOperationHandler(java.lang.String oid)
          Returns an ExtendedOperationHandler with the specified oid which is registered to this protocol provider.
 java.util.Collection<ExtendedOperationHandler> getExtendedOperationHandlers()
          Gets the ExtendedOperationHandlers.
 org.apache.mina.common.IoHandler getHandler()
           
 LdapSessionManager getLdapSessionManager()
           
 int getMaxSizeLimit()
          Returns the maximum size limit in number of entries to return for search.
 int getMaxTimeLimit()
          Returns the maximum time limit in milliseonds to conduct a search.
 MechanismHandler getMechanismHandler(java.lang.String mechanism)
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyDnRequest> getModifyDnHandler()
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyRequest> getModifyHandler()
           
 java.lang.String getName()
           
 org.apache.mina.filter.codec.ProtocolCodecFactory getProtocolCodecFactory()
           
 java.lang.String getSaslHost()
          Returns the FQDN of this SASL host, validated during SASL negotiation.
 java.util.Map<java.lang.String,MechanismHandler> getSaslMechanismHandlers()
           
 java.lang.String getSaslPrincipal()
          Returns the Kerberos principal name for this LDAP service, used by GSSAPI.
 java.util.Set<java.lang.String> getSaslQop()
          Returns the Set of quality-of-protection, used by DIGEST-MD5 and GSSAPI.
 java.lang.String getSaslQopString()
          Returns the quality-of-protection, used by DIGEST-MD5 and GSSAPI.
 java.util.List<java.lang.String> getSaslRealms()
          Returns the realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI.
 LdapRequestHandler<org.apache.directory.shared.ldap.message.SearchRequest> getSearchHandler()
           
 java.util.Set<java.lang.String> getSupportedControls()
           
 java.util.Set<java.lang.String> getSupportedMechanisms()
           
 LdapRequestHandler<org.apache.directory.shared.ldap.message.UnbindRequest> getUnbindHandler()
           
 boolean isAllowAnonymousAccess()
          Returns true if anonymous access is allowed.
 boolean isConfidentialityRequired()
          Gets whether or not TLS secured connections are required to perform operations on this LdapService.
 boolean isEnableLdaps()
          Returns true if LDAPS is enabled.
 boolean isStarted()
          Gets whether or not this service has been started.
 void removeExtendedOperationHandler(java.lang.String oid)
          Deregisteres an ExtendedOperationHandler with the specified oid from this protocol provider.
 MechanismHandler removeSaslMechanismHandler(java.lang.String mechanism)
           
 void setAbandonHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.AbandonRequest> abandonHandler)
           
 void setAddHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.AddRequest> addHandler)
           
 void setAllowAnonymousAccess(boolean enableAnonymousAccess)
          Sets whether to allow anonymous access or not.
 void setBindHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.BindRequest> bindHandler)
           
 void setCompareHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.CompareRequest> compareHandler)
           
 void setConfidentialityRequired(boolean confidentialityRequired)
          Sets the mode for this LdapService to accept requests with or without a TLS secured connection via either StartTLS extended operations or using LDAPS.
 void setDeleteHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.DeleteRequest> deleteHandler)
           
 void setDirectoryService(DirectoryService directoryService)
          Sets the DirectoryService assigned to this ProtocolService.
 void setEnableLdaps(boolean enableLdaps)
          Sets if LDAPS is enabled or not.
 void setExtendedHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.ExtendedRequest> extendedHandler)
           
 void setExtendedOperationHandlers(java.util.Collection<ExtendedOperationHandler> handlers)
          Sets the ExtendedOperationHandlers.
 void setMaxSizeLimit(int maxSizeLimit)
          Sets the maximum size limit in number of entries to return for search.
 void setMaxTimeLimit(int maxTimeLimit)
          Sets the maximum time limit in miliseconds to conduct a search.
 void setModifyDnHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyDnRequest> modifyDnHandler)
           
 void setModifyHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyRequest> modifyHandler)
           
 void setSaslHost(java.lang.String saslHost)
          Sets the FQDN of this SASL host, validated during SASL negotiation.
 void setSaslMechanismHandlers(java.util.Map<java.lang.String,MechanismHandler> saslMechanismHandlers)
           
 void setSaslPrincipal(java.lang.String saslPrincipal)
          Sets the Kerberos principal name for this LDAP service, used by GSSAPI.
 void setSaslQop(java.util.Set<java.lang.String> saslQop)
          Sets the desired quality-of-protection, used by DIGEST-MD5 and GSSAPI.
 void setSaslRealms(java.util.List<java.lang.String> saslRealms)
          Sets the realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI.
 void setSearchHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.SearchRequest> searchHandler)
           
 void setStarted(boolean started)
           
 void setSupportedControls(java.util.Set<java.lang.String> supportedControls)
           
 void setUnbindHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.UnbindRequest> unbindHandler)
           
 void start()
          Starts this ProtocolService which binds acceptors on the protocol port.
 void stop()
          Stops this ProtocolService which unbinds acceptors on the protocol port.
 
Methods inherited from class org.apache.directory.server.protocol.shared.DirectoryBackedService
getSearchBaseDn, isCatelogBased, setCatelogBased, setSearchBaseDn
 
Methods inherited from class org.apache.directory.server.protocol.shared.AbstractProtocolService
getDatagramAcceptor, getDirectoryService, getIpAddress, getIpPort, getServiceId, getServiceName, getSocketAcceptor, getTransportProtocols, isEnabled, setDatagramAcceptor, setEnabled, setIpAddress, setIpPort, setServiceId, setServiceName, setSocketAcceptor, setTransportProtocols
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NO_SIZE_LIMIT

public static final int NO_SIZE_LIMIT
Value (0) for configuration where size limit is unlimited.

See Also:
Constant Field Values

NO_TIME_LIMIT

public static final int NO_TIME_LIMIT
Value (0) for configuration where time limit is unlimited.

See Also:
Constant Field Values

SERVICE_NAME

public static final java.lang.String SERVICE_NAME
the constant service name of this ldap protocol provider

See Also:
Constant Field Values
Constructor Detail

LdapService

public LdapService()
Creates an LDAP protocol provider.

Method Detail

start

public void start()
           throws java.lang.Exception
Description copied from interface: ProtocolService
Starts this ProtocolService which binds acceptors on the protocol port.

Throws:
java.io.IOException - if we cannot bind to the specified port
NamingException - if the LDAP server cannot be started
java.lang.Exception - if there are problems starting this service

stop

public void stop()
Description copied from interface: ProtocolService
Stops this ProtocolService which unbinds acceptors on the protocol port.


getName

public java.lang.String getName()

getHandler

public org.apache.mina.common.IoHandler getHandler()

getLdapSessionManager

public LdapSessionManager getLdapSessionManager()

getProtocolCodecFactory

public org.apache.mina.filter.codec.ProtocolCodecFactory getProtocolCodecFactory()

addExtendedOperationHandler

public void addExtendedOperationHandler(ExtendedOperationHandler eoh)
                                 throws java.lang.Exception
Registeres the specified ExtendedOperationHandler to this protocol provider to provide a specific LDAP extended operation.

Parameters:
eoh - an extended operation handler
Throws:
NamingException - on failure to add the handler
java.lang.Exception

removeExtendedOperationHandler

public void removeExtendedOperationHandler(java.lang.String oid)
Deregisteres an ExtendedOperationHandler with the specified oid from this protocol provider.

Parameters:
oid - the numeric identifier for the extended operation associated with the handler to remove

getExtendedOperationHandler

public ExtendedOperationHandler getExtendedOperationHandler(java.lang.String oid)
Returns an ExtendedOperationHandler with the specified oid which is registered to this protocol provider.

Parameters:
oid - the oid of the extended request of associated with the extended request handler
Returns:
the exnteded operation handler

setConfidentialityRequired

public void setConfidentialityRequired(boolean confidentialityRequired)
Sets the mode for this LdapService to accept requests with or without a TLS secured connection via either StartTLS extended operations or using LDAPS.

Parameters:
confidentialityRequired - true to require confidentiality

isConfidentialityRequired

public boolean isConfidentialityRequired()
Gets whether or not TLS secured connections are required to perform operations on this LdapService.

Returns:
true if TLS secured connections are required, false otherwise

isEnableLdaps

public boolean isEnableLdaps()
Returns true if LDAPS is enabled.

Returns:
True if LDAPS is enabled.

setEnableLdaps

public void setEnableLdaps(boolean enableLdaps)
Sets if LDAPS is enabled or not.

Parameters:
enableLdaps - Whether LDAPS is enabled.

isAllowAnonymousAccess

public boolean isAllowAnonymousAccess()
Returns true if anonymous access is allowed.

Returns:
True if anonymous access is allowed.

setAllowAnonymousAccess

public void setAllowAnonymousAccess(boolean enableAnonymousAccess)
Sets whether to allow anonymous access or not.

Parameters:
enableAnonymousAccess - Set true to allow anonymous access.

setMaxSizeLimit

public void setMaxSizeLimit(int maxSizeLimit)
Sets the maximum size limit in number of entries to return for search.

Parameters:
maxSizeLimit - the maximum number of entries to return for search

getMaxSizeLimit

public int getMaxSizeLimit()
Returns the maximum size limit in number of entries to return for search.

Returns:
The maximum size limit.

setMaxTimeLimit

public void setMaxTimeLimit(int maxTimeLimit)
Sets the maximum time limit in miliseconds to conduct a search.

Parameters:
maxTimeLimit - the maximum length of time in milliseconds for search

getMaxTimeLimit

public int getMaxTimeLimit()
Returns the maximum time limit in milliseonds to conduct a search.

Returns:
The maximum time limit in milliseconds for search

getExtendedOperationHandlers

public java.util.Collection<ExtendedOperationHandler> getExtendedOperationHandlers()
Gets the ExtendedOperationHandlers.

Returns:
A collection of ExtendedOperationHandlers.

setExtendedOperationHandlers

public void setExtendedOperationHandlers(java.util.Collection<ExtendedOperationHandler> handlers)
Sets the ExtendedOperationHandlers.

Parameters:
handlers - A collection of ExtendedOperationHandlers.
'XBean Property'
nestedType="org.apache.directory.server.ldap.ExtendedOperationHandler"

getSaslHost

public java.lang.String getSaslHost()
Returns the FQDN of this SASL host, validated during SASL negotiation.

Returns:
The FQDN of this SASL host, validated during SASL negotiation.

setSaslHost

public void setSaslHost(java.lang.String saslHost)
Sets the FQDN of this SASL host, validated during SASL negotiation.

Parameters:
saslHost - The FQDN of this SASL host, validated during SASL negotiation.

getSaslPrincipal

public java.lang.String getSaslPrincipal()
Returns the Kerberos principal name for this LDAP service, used by GSSAPI.

Returns:
The Kerberos principal name for this LDAP service, used by GSSAPI.

setSaslPrincipal

public void setSaslPrincipal(java.lang.String saslPrincipal)
Sets the Kerberos principal name for this LDAP service, used by GSSAPI.

Parameters:
saslPrincipal - The Kerberos principal name for this LDAP service, used by GSSAPI.

getSaslQopString

public java.lang.String getSaslQopString()
Returns the quality-of-protection, used by DIGEST-MD5 and GSSAPI.

Returns:
The quality-of-protection, used by DIGEST-MD5 and GSSAPI.

getSaslQop

public java.util.Set<java.lang.String> getSaslQop()
Returns the Set of quality-of-protection, used by DIGEST-MD5 and GSSAPI.

Returns:
The quality-of-protection, used by DIGEST-MD5 and GSSAPI.

setSaslQop

public void setSaslQop(java.util.Set<java.lang.String> saslQop)
Sets the desired quality-of-protection, used by DIGEST-MD5 and GSSAPI. We build a string from this list, where QoP are comma delimited

Parameters:
saslQop - The desired quality-of-protection, used by DIGEST-MD5 and GSSAPI.
'XBean Property'
nestedType="java.lang.String"

getSaslRealms

public java.util.List<java.lang.String> getSaslRealms()
Returns the realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI.

Returns:
The realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI.

setSaslRealms

public void setSaslRealms(java.util.List<java.lang.String> saslRealms)
Sets the realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI.

Parameters:
saslRealms - The realms serviced by this SASL host, used by DIGEST-MD5 and GSSAPI.
'XBean Property'
nestedType="java.lang.String"

getSaslMechanismHandlers

public java.util.Map<java.lang.String,MechanismHandler> getSaslMechanismHandlers()

setSaslMechanismHandlers

public void setSaslMechanismHandlers(java.util.Map<java.lang.String,MechanismHandler> saslMechanismHandlers)

addSaslMechanismHandler

public MechanismHandler addSaslMechanismHandler(java.lang.String mechanism,
                                                MechanismHandler handler)

removeSaslMechanismHandler

public MechanismHandler removeSaslMechanismHandler(java.lang.String mechanism)

getMechanismHandler

public MechanismHandler getMechanismHandler(java.lang.String mechanism)

getSupportedMechanisms

public java.util.Set<java.lang.String> getSupportedMechanisms()

setDirectoryService

public void setDirectoryService(DirectoryService directoryService)
Description copied from interface: ProtocolService
Sets the DirectoryService assigned to this ProtocolService.

Specified by:
setDirectoryService in interface ProtocolService
Overrides:
setDirectoryService in class AbstractProtocolService
Parameters:
directoryService - the directory service core assigned to this service

getSupportedControls

public java.util.Set<java.lang.String> getSupportedControls()

setSupportedControls

public void setSupportedControls(java.util.Set<java.lang.String> supportedControls)

getAbandonHandler

public org.apache.mina.handler.demux.MessageHandler<org.apache.directory.shared.ldap.message.AbandonRequest> getAbandonHandler()

setAbandonHandler

public void setAbandonHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.AbandonRequest> abandonHandler)

getAddHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.AddRequest> getAddHandler()

setAddHandler

public void setAddHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.AddRequest> addHandler)

getBindHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.BindRequest> getBindHandler()

setBindHandler

public void setBindHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.BindRequest> bindHandler)

getCompareHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.CompareRequest> getCompareHandler()

setCompareHandler

public void setCompareHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.CompareRequest> compareHandler)

getDeleteHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.DeleteRequest> getDeleteHandler()

setDeleteHandler

public void setDeleteHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.DeleteRequest> deleteHandler)

getExtendedHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.ExtendedRequest> getExtendedHandler()

setExtendedHandler

public void setExtendedHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.ExtendedRequest> extendedHandler)

getModifyHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyRequest> getModifyHandler()

setModifyHandler

public void setModifyHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyRequest> modifyHandler)

getModifyDnHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyDnRequest> getModifyDnHandler()

setModifyDnHandler

public void setModifyDnHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.ModifyDnRequest> modifyDnHandler)

getSearchHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.SearchRequest> getSearchHandler()

setSearchHandler

public void setSearchHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.SearchRequest> searchHandler)

getUnbindHandler

public LdapRequestHandler<org.apache.directory.shared.ldap.message.UnbindRequest> getUnbindHandler()

setUnbindHandler

public void setUnbindHandler(LdapRequestHandler<org.apache.directory.shared.ldap.message.UnbindRequest> unbindHandler)

isStarted

public boolean isStarted()
Description copied from interface: ProtocolService
Gets whether or not this service has been started.

Specified by:
isStarted in interface ProtocolService
Overrides:
isStarted in class AbstractProtocolService
Returns:
true if the service has started, false otherwise

setStarted

public void setStarted(boolean started)
Overrides:
setStarted in class AbstractProtocolService


Copyright © 2003-2009 Apache Software Foundation. All Rights Reserved.