net.sf.ldaptemplate
Class LdapTemplate

java.lang.Object
  extended bynet.sf.ldaptemplate.LdapTemplate
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, LdapOperations

public class LdapTemplate
extends java.lang.Object
implements LdapOperations, org.springframework.beans.factory.InitializingBean

Executes core LDAP functionality and helps to avoid common errors, relieving the user of the burden of looking up contexts, looping through NamingEnumerations and closing contexts.

Note for Active Directory (AD) users: AD servers are apparently unable to handle referrals automatically, which causes a PartialResultException to be thrown whenever a referral is encountered in a search. To avoid this, set the ignorePartialResultException property to true. There is currently no way of manually handling these referrals in the form of ReferralException, i.e. either you get the exception (and your results are lost) or all referrals are ignored (if the server is unable to handle them properly. Neither is there any simple way to get notified that a PartialResultException has been ignored (other than in the log).

Author:
Mattias Arthursson, Ulrik Sandberg
See Also:
ContextSource

Nested Class Summary
 class LdapTemplate.AttributesMapperCallbackHandler
          A CollectingSearchResultCallbackHandler to wrap an AttributesMapper.
 class LdapTemplate.ContextMapperCallbackHandler
          A CollectingSearchResultCallbackHandler to wrap a ContextMapper.
 
Constructor Summary
LdapTemplate()
          Constructor for bean usage.
LdapTemplate(ContextSource contextSource)
          Constructor to setup instance directly.
 
Method Summary
 void afterPropertiesSet()
           
 void bind(javax.naming.Name dn, java.lang.Object obj, javax.naming.directory.Attributes attributes)
          Bind the supplied object together with the attributes to the specified dn.
 void bind(java.lang.String dn, java.lang.Object obj, javax.naming.directory.Attributes attributes)
          Bind the supplied object together with the attributes to the specified dn.
protected  void deleteRecursively(javax.naming.directory.DirContext ctx, DistinguishedName name)
          Delete all subcontexts including the current one recursively.
 java.lang.Object executeReadOnly(ContextExecutor ce)
          Perform an operation (or series of operations) on a read-only context.
 java.lang.Object executeReadWrite(ContextExecutor ce)
          Perform an operation (or series of operations) on a read-write context.
 NamingExceptionTranslator getExceptionTranslator()
          Get the NamingExceptionTranslator that will be used by this instance.
 java.lang.Object lookup(javax.naming.Name dn)
          Lookup the supplied DN and return the found object.
 java.lang.Object lookup(javax.naming.Name dn, AttributesMapper mapper)
          Convenience method to get the attributes of a specified DN and automatically pass them to an AttributesMapper.
 java.lang.Object lookup(javax.naming.Name dn, ContextMapper mapper)
          Convenience method to lookup a specified DN and automatically pass the found objectt to a ContextMapper.
 java.lang.Object lookup(java.lang.String dn)
          Lookup the supplied DN and return the found object.
 java.lang.Object lookup(java.lang.String dn, AttributesMapper mapper)
          Convenience method to get the attributes of a specified DN and automatically pass them to an AttributesMapper.
 java.lang.Object lookup(java.lang.String dn, ContextMapper mapper)
          Convenience method to lookup a specified DN and automatically pass the found objectt to a ContextMapper.
 void modifyAttributes(javax.naming.Name dn, javax.naming.directory.ModificationItem[] mods)
          Modify the distinguished name dn with the supplied ModificationItems.
 void modifyAttributes(java.lang.String dn, javax.naming.directory.ModificationItem[] mods)
          Modify the distinguished name dn with the supplied ModificationItems.
 void rebind(javax.naming.Name dn, java.lang.Object obj, javax.naming.directory.Attributes attributes)
          Rebind the name to the object along with the specified attributes, overwriting any previous values.
 void rebind(java.lang.String dn, java.lang.Object obj, javax.naming.directory.Attributes attributes)
          Rebind the name to the object along with the specified attributes, overwriting any previous values.
 void rename(javax.naming.Name oldDn, javax.naming.Name newDn)
          Binds a new name to the object bound to an old name, and unbinds the old name.
 void rename(java.lang.String oldDn, java.lang.String newDn)
          Binds a new name to the object bound to an old name, and unbinds the old name.
 java.util.List search(javax.naming.Name base, java.lang.String filter, AttributesMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(javax.naming.Name base, java.lang.String filter, ContextMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(javax.naming.Name base, java.lang.String filter, int searchScope, AttributesMapper mapper)
          Search for all objects matching the supplied filter.
 void search(javax.naming.Name base, java.lang.String filter, int searchScope, boolean returningObjFlag, SearchResultCallbackHandler handler)
          Search for all objects matching the supplied filter.
 java.util.List search(javax.naming.Name base, java.lang.String filter, int searchScope, ContextMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(javax.naming.Name base, java.lang.String filter, javax.naming.directory.SearchControls controls, AttributesMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(javax.naming.Name base, java.lang.String filter, javax.naming.directory.SearchControls controls, ContextMapper mapper)
          Search for all objects matching the supplied filter.
 void search(javax.naming.Name base, java.lang.String filter, javax.naming.directory.SearchControls controls, SearchResultCallbackHandler handler)
          Search for all objects matching the supplied filter.
 void search(javax.naming.Name base, java.lang.String filter, SearchResultCallbackHandler handler)
          Search for all objects matching the supplied filter.
 void search(SearchExecutor se, SearchResultCallbackHandler handler)
          Perform a search.
 java.util.List search(java.lang.String base, java.lang.String filter, AttributesMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(java.lang.String base, java.lang.String filter, ContextMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(java.lang.String base, java.lang.String filter, int searchScope, AttributesMapper mapper)
          Search for all objects matching the supplied filter.
 void search(java.lang.String base, java.lang.String filter, int searchScope, boolean returningObjFlag, SearchResultCallbackHandler handler)
          Search for all objects matching the supplied filter.
 java.util.List search(java.lang.String base, java.lang.String filter, int searchScope, ContextMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(java.lang.String base, java.lang.String filter, javax.naming.directory.SearchControls controls, AttributesMapper mapper)
          Search for all objects matching the supplied filter.
 java.util.List search(java.lang.String base, java.lang.String filter, javax.naming.directory.SearchControls controls, ContextMapper mapper)
          Search for all objects matching the supplied filter.
 void search(java.lang.String base, java.lang.String filter, javax.naming.directory.SearchControls controls, SearchResultCallbackHandler handler)
          Search for all objects matching the supplied filter.
 void search(java.lang.String base, java.lang.String filter, SearchResultCallbackHandler handler)
          Search for all objects matching the supplied filter.
 void setContextSource(ContextSource contextSource)
          Set the ContextSource.
 void setExceptionTranslator(NamingExceptionTranslator exceptionTranslator)
          Set the NamingExceptionTranslator to be used by this instance.
 void setIgnorePartialResultException(boolean ignore)
          Specify whether PartialResultException should be ignored in searches.
 void unbind(javax.naming.Name dn)
          Unbind the specified distinguished name.
 void unbind(javax.naming.Name dn, boolean recursive)
          Unbind the specified distinguished name.
 void unbind(java.lang.String dn)
          Unbind the specified distinguished name.
 void unbind(java.lang.String dn, boolean recursive)
          Unbind the specified distinguished name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LdapTemplate

public LdapTemplate()
Constructor for bean usage.


LdapTemplate

public LdapTemplate(ContextSource contextSource)
Constructor to setup instance directly.

Parameters:
contextSource - the ContextSource to use.
Method Detail

setContextSource

public void setContextSource(ContextSource contextSource)
Set the ContextSource. Call this method when the default constructor has been used.

Parameters:
contextSource - the ContextSource.

setIgnorePartialResultException

public void setIgnorePartialResultException(boolean ignore)
Specify whether PartialResultException should be ignored in searches. AD servers typically have a problem with referrals. Normally a referral should be followed automatically, but this does not seem to work with AD servers. The problem manifests itself with a a PartialResultException being thrown when a referral is encountered by the server. Setting this property to true presents a workaround to this problem by causing PartialResultException to be ignored, so that the search method returns normally. Default value of this parameter is false.

Parameters:
ignore - true if PartialResultException should be ignored in searches, false otherwise. Default is false.

search

public void search(javax.naming.Name base,
                   java.lang.String filter,
                   int searchScope,
                   boolean returningObjFlag,
                   SearchResultCallbackHandler handler)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. Each SearchResult is supplied to the specified SearchResultCallbackHandler. Use the specified search scope and return objects flag in search controls.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
searchScope - the search scope to set in SearchControls.
returningObjFlag - whether the bound object should be returned in search results.
handler - the SearchResultCallbackHandler to supply the SearchResults to.

search

public void search(java.lang.String base,
                   java.lang.String filter,
                   int searchScope,
                   boolean returningObjFlag,
                   SearchResultCallbackHandler handler)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. Each SearchResult is supplied to the specified SearchResultCallbackHandler. Use the specified search scope and return objects flag in search controls.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
searchScope - the search scope to set in SearchControls.
returningObjFlag - whether the bound object should be returned in search results.
handler - the SearchResultCallbackHandler to supply the SearchResults to.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public void search(javax.naming.Name base,
                   java.lang.String filter,
                   javax.naming.directory.SearchControls controls,
                   SearchResultCallbackHandler handler)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. Each SearchResult is supplied to the specified SearchResultCallbackHandler. Use the specified SearchControls in the search. Note that if you are using a ContextMapper, the returningObjFlag needs to be set to true.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
controls - the SearchControls to use in the search.
handler - the SearchResultCallbackHandler to supply the SearchResults to.

search

public void search(java.lang.String base,
                   java.lang.String filter,
                   javax.naming.directory.SearchControls controls,
                   SearchResultCallbackHandler handler)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. Each SearchResult is supplied to the specified SearchResultCallbackHandler. Use the specified SearchControls in the search. Note that if you are using a ContextMapper, the returningObjFlag needs to be set to true.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
controls - the SearchControls to use in the search.
handler - the SearchResultCallbackHandler to supply the SearchResults to.

search

public void search(SearchExecutor se,
                   SearchResultCallbackHandler handler)
Description copied from interface: LdapOperations
Perform a search. Use this method only if especially needed - for the most cases there is an overloaded convenience method which calls this one with suitable argments. This method handles all the plumbing; getting a readonly context; looping through the NamingEnumeration and closing the context and enumeration. The actual search is delegated to the SearchExecutor and each SearchResult is passed to the CallbackHandler. Any encountered NamingException will be translated using the NamingExceptionTranslator.

Specified by:
search in interface LdapOperations
Parameters:
se - the SearchExecutor to use for performing the actual search.
handler - the SearchResultCallbackHandler to which each found entry will be passed.

search

public void search(javax.naming.Name base,
                   java.lang.String filter,
                   SearchResultCallbackHandler handler)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. Each SearchResult is supplied to the specified SearchResultCallbackHandler. The default Search scope (SearchControls.SUBTREE_SCOPE) will be used and the returnObjects flag will be set to false.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
handler - the SearchResultCallbackHandler to supply the SearchResults to.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public void search(java.lang.String base,
                   java.lang.String filter,
                   SearchResultCallbackHandler handler)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. Each SearchResult is supplied to the specified SearchResultCallbackHandler. The default Search scope (SearchControls.SUBTREE_SCOPE) will be used and no the returnObjects will be set to false.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
handler - the SearchResultCallbackHandler to supply the SearchResults to.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public java.util.List search(javax.naming.Name base,
                             java.lang.String filter,
                             int searchScope,
                             AttributesMapper mapper)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Attributes in each SearchResult is supplied to the specified AttributesMapper.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
searchScope - the search scope to set in SearchControls.
mapper - the AttributesMapper to use for translating each entry.
Returns:
a List containing all entries received from the AttributesMapper.

search

public java.util.List search(java.lang.String base,
                             java.lang.String filter,
                             int searchScope,
                             AttributesMapper mapper)
                      throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Attributes in each SearchResult is supplied to the specified AttributesMapper.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
searchScope - the search scope to set in SearchControls.
mapper - the AttributesMapper to use for translating each entry.
Returns:
a List containing all entries received from the AttributesMapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public java.util.List search(javax.naming.Name base,
                             java.lang.String filter,
                             AttributesMapper mapper)
                      throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Attributes in each SearchResult is supplied to the specified AttributesMapper. The default seach scope will be used.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
mapper - the AttributesMapper to use for translating each entry.
Returns:
a List containing all entries received from the AttributesMapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public java.util.List search(java.lang.String base,
                             java.lang.String filter,
                             AttributesMapper mapper)
                      throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Attributes in each SearchResult is supplied to the specified AttributesMapper. The default seach scope will be used.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
mapper - the AttributesMapper to use for translating each entry.
Returns:
a List containing all entries received from the AttributesMapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public java.util.List search(javax.naming.Name base,
                             java.lang.String filter,
                             int searchScope,
                             ContextMapper mapper)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified ContextMapper.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
searchScope - the search scope to set in SearchControls.
mapper - the ContextMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.

search

public java.util.List search(java.lang.String base,
                             java.lang.String filter,
                             int searchScope,
                             ContextMapper mapper)
                      throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified ContextMapper. The default search scope (SearchControls.SUBTREE_SCOPE) will be used.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
searchScope - the search scope to set in SearchControls.
mapper - the ContextMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public java.util.List search(javax.naming.Name base,
                             java.lang.String filter,
                             ContextMapper mapper)
                      throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified ContextMapper. The default search scope (SearchControls.SUBTREE_SCOPE) will be used.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
mapper - the ContextMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public java.util.List search(java.lang.String base,
                             java.lang.String filter,
                             ContextMapper mapper)
                      throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified ContextMapper. The default search scope (SearchControls.SUBTREE_SCOPE) will be used.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
mapper - the ContextMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs. Note that a NameNotFoundException will be ignored. Instead this is interpreted that no entries were found.

search

public java.util.List search(java.lang.String base,
                             java.lang.String filter,
                             javax.naming.directory.SearchControls controls,
                             ContextMapper mapper)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified ContextMapper.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
controls - the SearchControls to use in the search. If the returnObjFlag is not set in the SearchControls, this method will set it automatically, as this is required for the ContextMapper to work.
mapper - the ContextMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.

search

public java.util.List search(javax.naming.Name base,
                             java.lang.String filter,
                             javax.naming.directory.SearchControls controls,
                             ContextMapper mapper)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified ContextMapper.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
controls - the SearchControls to use in the search. If the returnObjFlag is not set in the SearchControls, this method will set it automatically, as this is required for the ContextMapper to work.
mapper - the ContextMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.

search

public java.util.List search(javax.naming.Name base,
                             java.lang.String filter,
                             javax.naming.directory.SearchControls controls,
                             AttributesMapper mapper)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified AttributesMapper.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
controls - the SearchControls to use in the search. If the returnObjFlag is not set in the SearchControls, this method will set it automatically, as this is required for the ContextMapper to work.
mapper - the AttributesMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.

search

public java.util.List search(java.lang.String base,
                             java.lang.String filter,
                             javax.naming.directory.SearchControls controls,
                             AttributesMapper mapper)
Description copied from interface: LdapOperations
Search for all objects matching the supplied filter. The Object returned in each SearchResult is supplied to the specified AttributesMapper.

Specified by:
search in interface LdapOperations
Parameters:
base - The base DN where the search should begin.
filter - the filter to use in the search.
controls - the SearchControls to use in the search.
mapper - the AttributesMapper to use for translating each entry.
Returns:
a List containing all entries received from the ContextMapper.

executeReadOnly

public java.lang.Object executeReadOnly(ContextExecutor ce)
Description copied from interface: LdapOperations
Perform an operation (or series of operations) on a read-only context. This method handles the plumbing - getting a DirContext, translating any exceptions and closing the context afterwards. This method is not intended for searches; use LdapOperations.search(SearchExecutor, SearchResultCallbackHandler) or any of the overloaded search methods for this.

Specified by:
executeReadOnly in interface LdapOperations
Parameters:
ce - the ContextExecutor to which the actual operation on the DirContext will be delegated.
Returns:
the result from the ContextExecutor's operation.

executeReadWrite

public java.lang.Object executeReadWrite(ContextExecutor ce)
Description copied from interface: LdapOperations
Perform an operation (or series of operations) on a read-write context. This method handles the plumbing - getting a DirContext, translating any exceptions and closing the context afterwards.

Specified by:
executeReadWrite in interface LdapOperations
Parameters:
ce - the ContextExecutor to which the actual operation on the DirContext will be delegated.
Returns:
the result from the ContextExecutor's operation.

lookup

public java.lang.Object lookup(javax.naming.Name dn)
Description copied from interface: LdapOperations
Lookup the supplied DN and return the found object. WARNING: This method should only be used if a DirObjectFactory has been specified on the ContextFactory. If this is not the case, you will get a new instance of the actual DirContext, which is probably not what you want. If, however this is what you want, be careful to close the context after you finished working with it.

Specified by:
lookup in interface LdapOperations
Parameters:
dn - the distinguished name of the object to find.
Returns:
the found object.

lookup

public java.lang.Object lookup(java.lang.String dn)
                        throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Lookup the supplied DN and return the found object. WARNING: This method should only be used if a DirObjectFactory has been specified on the ContextFactory. If this is not the case, you will get a new instance of the actual DirContext, which is probably not what you want. If, however this is what you want, be careful to close the context after you finished working with it.

Specified by:
lookup in interface LdapOperations
Parameters:
dn - the distinguished name of the object to find.
Returns:
the found object.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

lookup

public java.lang.Object lookup(javax.naming.Name dn,
                               AttributesMapper mapper)
Description copied from interface: LdapOperations
Convenience method to get the attributes of a specified DN and automatically pass them to an AttributesMapper.

Specified by:
lookup in interface LdapOperations
Parameters:
dn - the distinguished name to find.
mapper - the AttributesMapper to use for mapping the found object.
Returns:
the object returned from the mapper.

lookup

public java.lang.Object lookup(java.lang.String dn,
                               AttributesMapper mapper)
                        throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Convenience method to get the attributes of a specified DN and automatically pass them to an AttributesMapper.

Specified by:
lookup in interface LdapOperations
Parameters:
dn - the distinguished name to find.
mapper - the AttributesMapper to use for mapping the found object.
Returns:
the object returned from the mapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

lookup

public java.lang.Object lookup(javax.naming.Name dn,
                               ContextMapper mapper)
Description copied from interface: LdapOperations
Convenience method to lookup a specified DN and automatically pass the found objectt to a ContextMapper.

Specified by:
lookup in interface LdapOperations
Parameters:
dn - the distinguished name to find.
mapper - the ContextMapper to use for mapping the found object.
Returns:
the object returned from the mapper.

lookup

public java.lang.Object lookup(java.lang.String dn,
                               ContextMapper mapper)
                        throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Convenience method to lookup a specified DN and automatically pass the found objectt to a ContextMapper.

Specified by:
lookup in interface LdapOperations
Parameters:
dn - the distinguished name to find.
mapper - the ContextMapper to use for mapping the found object.
Returns:
the object returned from the mapper.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

modifyAttributes

public void modifyAttributes(javax.naming.Name dn,
                             javax.naming.directory.ModificationItem[] mods)
Description copied from interface: LdapOperations
Modify the distinguished name dn with the supplied ModificationItems.

Specified by:
modifyAttributes in interface LdapOperations
Parameters:
dn - The distinguished name of the node to modify.
mods - the modifications to perform.

modifyAttributes

public void modifyAttributes(java.lang.String dn,
                             javax.naming.directory.ModificationItem[] mods)
                      throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Modify the distinguished name dn with the supplied ModificationItems.

Specified by:
modifyAttributes in interface LdapOperations
Parameters:
dn - The distinguished name of the node to modify.
mods - the modifications to perform.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

bind

public void bind(javax.naming.Name dn,
                 java.lang.Object obj,
                 javax.naming.directory.Attributes attributes)
Description copied from interface: LdapOperations
Bind the supplied object together with the attributes to the specified dn.

Specified by:
bind in interface LdapOperations
Parameters:
dn - the distinguished name to bind the object and attributes to.
obj - the object to bind, may be null.
attributes - the attributes to bind.

bind

public void bind(java.lang.String dn,
                 java.lang.Object obj,
                 javax.naming.directory.Attributes attributes)
          throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Bind the supplied object together with the attributes to the specified dn.

Specified by:
bind in interface LdapOperations
Parameters:
dn - the distinguished name to bind the object and attributes to.
obj - the object to bind, may be null.
attributes - the attributes to bind.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

unbind

public void unbind(javax.naming.Name dn)
Description copied from interface: LdapOperations
Unbind the specified distinguished name.

Specified by:
unbind in interface LdapOperations
Parameters:
dn - the distinguished name to unbind.

unbind

public void unbind(java.lang.String dn)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Unbind the specified distinguished name.

Specified by:
unbind in interface LdapOperations
Parameters:
dn - the distinguished name to unbind.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

unbind

public void unbind(javax.naming.Name dn,
                   boolean recursive)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Unbind the specified distinguished name.

Specified by:
unbind in interface LdapOperations
Parameters:
dn - the distinguished name to unbind.
recursive - whether to unbind all subcontexts as well.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

unbind

public void unbind(java.lang.String dn,
                   boolean recursive)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Unbind the specified distinguished name.

Specified by:
unbind in interface LdapOperations
Parameters:
dn - the distinguished name to unbind.
recursive - whether to unbind all subcontexts as well.
Throws:
org.springframework.dao.DataAccessException - if any error occurs.

deleteRecursively

protected void deleteRecursively(javax.naming.directory.DirContext ctx,
                                 DistinguishedName name)
                          throws org.springframework.dao.DataAccessException
Delete all subcontexts including the current one recursively.

Parameters:
ctx - The context to use for deleting.
name - The starting point to delete recursively.
Throws:
org.springframework.dao.DataAccessException - if any error occurs

rebind

public void rebind(javax.naming.Name dn,
                   java.lang.Object obj,
                   javax.naming.directory.Attributes attributes)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Rebind the name to the object along with the specified attributes, overwriting any previous values. This method assumes that the specified context already exists.

Specified by:
rebind in interface LdapOperations
Parameters:
dn - the distinguished name to rebind.
obj - the object to bind to the DN.
attributes - the attributes to bind.
Throws:
org.springframework.dao.DataAccessException

rebind

public void rebind(java.lang.String dn,
                   java.lang.Object obj,
                   javax.naming.directory.Attributes attributes)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Rebind the name to the object along with the specified attributes, overwriting any previous values. This method assumes that the specified context already exists.

Specified by:
rebind in interface LdapOperations
Parameters:
dn - the distinguished name to rebind.
obj - the object to bind to the DN.
attributes - the attributes to bind.
Throws:
org.springframework.dao.DataAccessException

rename

public void rename(javax.naming.Name oldDn,
                   javax.naming.Name newDn)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Binds a new name to the object bound to an old name, and unbinds the old name. Both names are relative to this context. Any attributes associated with the old name become associated with the new name. Intermediate contexts of the old name are not changed.

Specified by:
rename in interface LdapOperations
Parameters:
oldDn - the name of the existing binding; may not be empty
newDn - the name of the new binding; may not be empty
Throws:
org.springframework.dao.DataAccessException

rename

public void rename(java.lang.String oldDn,
                   java.lang.String newDn)
            throws org.springframework.dao.DataAccessException
Description copied from interface: LdapOperations
Binds a new name to the object bound to an old name, and unbinds the old name. See LdapOperations.rename(Name, Name) for details.

Specified by:
rename in interface LdapOperations
Parameters:
oldDn - the name of the existing binding; may not be empty
newDn - the name of the new binding; may not be empty
Throws:
org.springframework.dao.DataAccessException

afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.Exception
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
Throws:
java.lang.Exception

getExceptionTranslator

public NamingExceptionTranslator getExceptionTranslator()
Get the NamingExceptionTranslator that will be used by this instance. If no exceptionTranslator has been set, a default instance will be created.

Returns:
the NamingExceptionTranslator to be used by this instance.

setExceptionTranslator

public void setExceptionTranslator(NamingExceptionTranslator exceptionTranslator)
Set the NamingExceptionTranslator to be used by this instance.

Parameters:
exceptionTranslator - the NamingExceptionTranslator to use.


Copyright © 2006 Jayway AB. All Rights Reserved.