|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.vt.middleware.ldap.AbstractLdap<T>
T - type of LdapConfigpublic abstract class AbstractLdap<T extends LdapConfig>
AbstractLdap contains the functions for basic interaction with a
LDAP. Methods are provided for connecting, binding, querying and updating.
| Field Summary | |
|---|---|
protected static CopyResultHandler<Binding> |
BINDING_COPY_RESULT_HANDLER
Default copy binding handler. |
protected T |
config
LDAP configuration environment. |
protected ConnectionHandler |
connectionHandler
LDAP connection handler. |
protected static CopyResultHandler<Object> |
COPY_RESULT_HANDLER
Default copy result handler. |
protected org.apache.commons.logging.Log |
logger
Log for this class. |
protected static CopyResultHandler<NameClassPair> |
NCP_COPY_RESULT_HANDLER
Default copy name class pair handler. |
protected static CopyResultHandler<SearchResult> |
SR_COPY_RESULT_HANDLER
Default copy search result handler, used if none supplied. |
| Constructor Summary | |
|---|---|
AbstractLdap()
|
|
| Method Summary | |
|---|---|
void |
close()
This will close the connection to the LDAP. |
protected boolean |
compare(String dn,
String filter,
Object[] filterArgs)
This will perform an LDAP compare operation with the supplied filter and dn. |
boolean |
connect()
This will establish a connection if one does not already exist by binding to the LDAP using parameters given by LdapConfig.getBindDn() and
LdapConfig.getBindCredential(). |
protected void |
create(String dn,
Attributes attrs)
This will create the supplied dn in the LDAP namespace with the supplied attributes. |
protected void |
delete(String dn)
This will delete the supplied dn from the LDAP namespace. |
protected void |
finalize()
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. |
protected Attributes |
getAttributes(String dn,
String[] retAttrs,
AttributeHandler... handler)
This will return the matching attributes associated with the supplied dn. |
protected LdapContext |
getContext()
This will return an initialized connection to the LDAP. |
protected Iterator<SearchResult> |
getSchema(String dn)
This will return the LDAP schema associated with the supplied dn. |
protected Iterator<NameClassPair> |
list(String dn)
This will enumerate the names bounds to the specified context, along with the class names of objects bound to them. |
protected Iterator<Binding> |
listBindings(String dn)
This will enumerate the names bounds to the specified context, along with the objects bound to them. |
protected void |
modifyAttributes(String dn,
int modOp,
Attributes attrs)
This will modify the supplied attributes for the supplied value given by the modification operation. |
protected void |
modifyAttributes(String dn,
ModificationItem[] mods)
This will modify the supplied dn using the supplied modifications. |
protected void |
operationRetry(LdapContext ctx,
NamingException e,
int count)
Confirms whether the supplied exception matches an exception from LdapConfig.getOperationRetryExceptions() and the supplied count is less
than LdapConfig.getOperationRetry(). |
protected Iterator<SearchResult> |
pagedSearch(String dn,
String filter,
Object[] filterArgs,
SearchControls searchControls,
SearchResultHandler... handler)
This will query the LDAP with the supplied dn, filter, filter arguments, and search controls. |
boolean |
reconnect()
This will close the current connection to the LDAP and establish a new connection to the LDAP using connect(). |
protected void |
rename(String oldDn,
String newDn)
This will rename the supplied dn in the LDAP namespace. |
protected Iterator<SearchResult> |
search(String dn,
String filter,
Object[] filterArgs,
SearchControls searchControls,
SearchResultHandler... handler)
This will query the LDAP with the supplied dn, filter, filter arguments, and search controls. |
protected Iterator<SearchResult> |
searchAttributes(String dn,
Attributes matchAttrs,
String[] retAttrs,
SearchResultHandler... handler)
This will query the LDAP for the supplied dn, matching attributes and return attributes. |
protected void |
setLdapConfig(T ldapConfig)
This will set the config parameters of this Ldap. |
String |
toString()
Provides a descriptive string representation of this instance. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected static final CopyResultHandler<SearchResult> SR_COPY_RESULT_HANDLER
protected static final CopyResultHandler<NameClassPair> NCP_COPY_RESULT_HANDLER
protected static final CopyResultHandler<Binding> BINDING_COPY_RESULT_HANDLER
protected static final CopyResultHandler<Object> COPY_RESULT_HANDLER
protected final org.apache.commons.logging.Log logger
protected ConnectionHandler connectionHandler
protected T extends LdapConfig config
| Constructor Detail |
|---|
public AbstractLdap()
| Method Detail |
|---|
protected void setLdapConfig(T ldapConfig)
Ldap.
ldapConfig - LdapConfig
protected boolean compare(String dn,
String filter,
Object[] filterArgs)
throws NamingException
dn - String name to comparefilter - String expression to use for comparefilterArgs - Object[] to substitute for variables in
the filter
boolean - result of compare operation
NamingException - if the LDAP returns an error
protected Iterator<SearchResult> search(String dn,
String filter,
Object[] filterArgs,
SearchControls searchControls,
SearchResultHandler... handler)
throws NamingException
Iterator is a
deep copy of the original search results. If filterArgs is null, then no
variable substitution will occur. See DirContext.
dn - String name to begin search atfilter - String expression to use for the searchfilterArgs - Object[] to substitute for variables in
the filtersearchControls - SearchControls to perform search withhandler - SearchResultHandler[] to post process results
Iterator - of LDAP search results
NamingException - if the LDAP returns an error
protected Iterator<SearchResult> pagedSearch(String dn,
String filter,
Object[] filterArgs,
SearchControls searchControls,
SearchResultHandler... handler)
throws NamingException
search(String, String, Object[],
SearchControls, SearchResultHandler...). The PagedResultsControl is used
in conjunction with LdapConfig.getPagedResultsSize() to produce the
results.
dn - String name to begin search atfilter - String expression to use for the searchfilterArgs - Object[] to substitute for variables in
the filtersearchControls - SearchControls to perform search withhandler - SearchResultHandler[] to post process results
Iterator - of LDAP search results
NamingException - if the LDAP returns an error
protected Iterator<SearchResult> searchAttributes(String dn,
Attributes matchAttrs,
String[] retAttrs,
SearchResultHandler... handler)
throws NamingException
Iterator is a deep copy of the original search
results. If matchAttrs is empty or null then all objects in the target
context are returned. If retAttrs is null then all attributes will be
returned. If retAttrs is an empty array then no attributes will be
returned. See DirContext.
dn - String name to search inmatchAttrs - Attributes attributes to matchretAttrs - String[] attributes to returnhandler - SearchResultHandler[] to post process results
Iterator - of LDAP search results
NamingException - if the LDAP returns an error
protected Iterator<NameClassPair> list(String dn)
throws NamingException
Iterator is a deep copy of the original search results. See Context.list(String).
dn - String LDAP context to list
Iterator - LDAP search result
NamingException - if the LDAP returns an error
protected Iterator<Binding> listBindings(String dn)
throws NamingException
Iterator is a deep
copy of the original search results. See Context.listBindings(String).
dn - String LDAP context to list
Iterator - LDAP search result
NamingException - if the LDAP returns an error
protected Attributes getAttributes(String dn,
String[] retAttrs,
AttributeHandler... handler)
throws NamingException
DirContext.
dn - String named object in the LDAPretAttrs - String[] attributes to returnhandler - AttributeHandler[] to post process results
Attributes
NamingException - if the LDAP returns an error
protected Iterator<SearchResult> getSchema(String dn)
throws NamingException
Iterator is a deep copy of the original search
results. See DirContext.
dn - String named object in the LDAP
Iterator - LDAP search result
NamingException - if the LDAP returns an error
protected void modifyAttributes(String dn,
int modOp,
Attributes attrs)
throws NamingException
DirContext.
dn - String named object in the LDAPmodOp - int modification operationattrs - Attributes attributes to be used for the
operation, may be null
NamingException - if the LDAP returns an error
protected void modifyAttributes(String dn,
ModificationItem[] mods)
throws NamingException
DirContext.
dn - String named object in the LDAPmods - ModificationItem[] modifications
NamingException - if the LDAP returns an error
protected void create(String dn,
Attributes attrs)
throws NamingException
DirContext. Note that the context created by this operation is
immediately closed.
dn - String named object in the LDAPattrs - Attributes attributes to be added to this entry
NamingException - if the LDAP returns an error
protected void rename(String oldDn,
String newDn)
throws NamingException
Context.rename(String, String).
oldDn - String object to renamenewDn - String new name
NamingException - if the LDAP returns an error
protected void delete(String dn)
throws NamingException
Context.destroySubcontext(String).
dn - String named object in the LDAP
NamingException - if the LDAP returns an error
public boolean connect()
throws NamingException
LdapConfig.getBindDn() and
LdapConfig.getBindCredential(). If these parameters have not been
set then an anonymous bind will be attempted. This connection must be
closed using close(). Any method which requires an LDAP connection
will call this method independently. This method should only be used if you
need to verify that you can connect to the LDAP.
connect in interface BaseLdapboolean - whether the connection was successful
NamingException - if the LDAP cannot be reached
public boolean reconnect()
throws NamingException
connect().
reconnect in interface BaseLdapboolean - whether the connection was successful
NamingException - if the LDAP cannot be reachedpublic void close()
close in interface BaseLdap
protected LdapContext getContext()
throws NamingException
LdapContext
NamingException - if the LDAP returns an error
protected void operationRetry(LdapContext ctx,
NamingException e,
int count)
throws NamingException
LdapConfig.getOperationRetryExceptions() and the supplied count is less
than LdapConfig.getOperationRetry(). LdapConfig.getOperationRetryWait() is used in conjunction with LdapConfig.getOperationRetryBackoff() to delay retries. Calls close() if no exception is thrown, which allows the client to reconnect
when the operation is performed again.
ctx - LdapContext that performed the operatione - NamingException that was throwncount - int operation attempts
NamingException - if the operation won't be retriedpublic String toString()
toString in class Object
protected void finalize()
throws Throwable
finalize in class ObjectThrowable - if an exception is thrown by this method
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||