Package org.springframework.ldap.control
Class AbstractRequestControlDirContextProcessor
- java.lang.Object
-
- org.springframework.ldap.control.AbstractRequestControlDirContextProcessor
-
- All Implemented Interfaces:
DirContextProcessor
- Direct Known Subclasses:
AbstractFallbackRequestAndResponseControlDirContextProcessor
,PagedResultsRequestControl
public abstract class AbstractRequestControlDirContextProcessor extends java.lang.Object implements DirContextProcessor
Abstract superclass with responsibility to apply a single RequestControl on an LdapContext, preserving any existing controls. Subclasses should implementDirContextProcessor.postProcess(DirContext)
and template methodcreateRequestControl()
.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.slf4j.Logger
log
-
Constructor Summary
Constructors Constructor Description AbstractRequestControlDirContextProcessor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract javax.naming.ldap.Control
createRequestControl()
Create an instance of the appropriate RequestControl.boolean
isReplaceSameControlEnabled()
If there already exists a request control of the same class as the one created bycreateRequestControl()
in the context, the new control can either replace the existing one (default behavior) or be added.void
preProcess(javax.naming.directory.DirContext ctx)
Get the existing RequestControls from the LdapContext, callcreateRequestControl()
to get a new instance, build a new array of Controls and set it on the LdapContext.void
setReplaceSameControlEnabled(boolean replaceSameControlEnabled)
If there already exists a request control of the same class as the one created bycreateRequestControl()
in the context, the new control can either replace the existing one (default behavior) or be added.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.springframework.ldap.core.DirContextProcessor
postProcess
-
-
-
-
Method Detail
-
isReplaceSameControlEnabled
public boolean isReplaceSameControlEnabled()
If there already exists a request control of the same class as the one created bycreateRequestControl()
in the context, the new control can either replace the existing one (default behavior) or be added.- Returns:
- true if an already existing control will be replaced
-
setReplaceSameControlEnabled
public void setReplaceSameControlEnabled(boolean replaceSameControlEnabled)
If there already exists a request control of the same class as the one created bycreateRequestControl()
in the context, the new control can either replace the existing one (default behavior) or be added.- Parameters:
replaceSameControlEnabled
-true
if an already existing control should be replaced
-
preProcess
public void preProcess(javax.naming.directory.DirContext ctx) throws javax.naming.NamingException
Get the existing RequestControls from the LdapContext, callcreateRequestControl()
to get a new instance, build a new array of Controls and set it on the LdapContext.The
Control
feature is specific for LDAP v3 and thus applies only toLdapContext
. However, the generic DirContextProcessor mechanism used for callingpreProcess
andpostProcess
uses DirContext, since it also works for LDAP v2. This is the reason that DirContext has to be cast to a LdapContext.- Specified by:
preProcess
in interfaceDirContextProcessor
- Parameters:
ctx
- an LdapContext instance.- Throws:
javax.naming.NamingException
java.lang.IllegalArgumentException
- if the supplied DirContext is not an LdapContext.
-
createRequestControl
public abstract javax.naming.ldap.Control createRequestControl()
Create an instance of the appropriate RequestControl.- Returns:
- the new instance.
-
-