org.teiid.resource.adapter.ldap
Class LDAPConnectionImpl

java.lang.Object
  extended by org.teiid.resource.spi.BasicConnection
      extended by org.teiid.resource.adapter.ldap.LDAPConnectionImpl
All Implemented Interfaces:
javax.naming.Context, javax.naming.directory.DirContext, javax.naming.ldap.LdapContext, javax.resource.cci.Connection

public class LDAPConnectionImpl
extends BasicConnection
implements javax.naming.ldap.LdapContext

Represents a connection to an LDAP data source.


Field Summary
static java.lang.String LDAP_AUTH_TYPE
           
static java.lang.String LDAP_REFERRAL_MODE
           
static java.lang.String LDAP_USER_OBJECT_TYPE
           
 
Fields inherited from interface javax.naming.ldap.LdapContext
CONTROL_FACTORIES
 
Fields inherited from interface javax.naming.directory.DirContext
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
 
Fields inherited from interface javax.naming.Context
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
 
Constructor Summary
LDAPConnectionImpl(LDAPManagedConnectionFactory config)
           
 
Method Summary
 java.lang.Object addToEnvironment(java.lang.String propName, java.lang.Object propVal)
           
 void bind(javax.naming.Name name, java.lang.Object obj)
           
 void bind(javax.naming.Name name, java.lang.Object obj, javax.naming.directory.Attributes attrs)
           
 void bind(java.lang.String name, java.lang.Object obj)
           
 void bind(java.lang.String name, java.lang.Object obj, javax.naming.directory.Attributes attrs)
           
 void close()
          Closes LDAP context, effectively closing the connection to LDAP.
 javax.naming.Name composeName(javax.naming.Name name, javax.naming.Name prefix)
           
 java.lang.String composeName(java.lang.String name, java.lang.String prefix)
           
 javax.naming.Context createSubcontext(javax.naming.Name name)
           
 javax.naming.directory.DirContext createSubcontext(javax.naming.Name name, javax.naming.directory.Attributes attrs)
           
 javax.naming.Context createSubcontext(java.lang.String name)
           
 javax.naming.directory.DirContext createSubcontext(java.lang.String name, javax.naming.directory.Attributes attrs)
           
 void destroySubcontext(javax.naming.Name name)
           
 void destroySubcontext(java.lang.String name)
           
 boolean equals(java.lang.Object obj)
           
 javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest request)
           
 javax.naming.directory.Attributes getAttributes(javax.naming.Name name)
           
 javax.naming.directory.Attributes getAttributes(javax.naming.Name name, java.lang.String[] attrIds)
           
 javax.naming.directory.Attributes getAttributes(java.lang.String name)
           
 javax.naming.directory.Attributes getAttributes(java.lang.String name, java.lang.String[] attrIds)
           
 javax.naming.ldap.Control[] getConnectControls()
           
 java.util.Hashtable<?,?> getEnvironment()
           
 java.lang.String getNameInNamespace()
           
 javax.naming.NameParser getNameParser(javax.naming.Name name)
           
 javax.naming.NameParser getNameParser(java.lang.String name)
           
 javax.naming.ldap.Control[] getRequestControls()
           
 javax.naming.ldap.Control[] getResponseControls()
           
 javax.naming.directory.DirContext getSchema(javax.naming.Name name)
           
 javax.naming.directory.DirContext getSchema(java.lang.String name)
           
 javax.naming.directory.DirContext getSchemaClassDefinition(javax.naming.Name name)
           
 javax.naming.directory.DirContext getSchemaClassDefinition(java.lang.String name)
           
 int hashCode()
           
 boolean isAlive()
          Currently, this method always returns alive.
 javax.naming.NamingEnumeration<javax.naming.NameClassPair> list(javax.naming.Name name)
           
 javax.naming.NamingEnumeration<javax.naming.NameClassPair> list(java.lang.String name)
           
 javax.naming.NamingEnumeration<javax.naming.Binding> listBindings(javax.naming.Name name)
           
 javax.naming.NamingEnumeration<javax.naming.Binding> listBindings(java.lang.String name)
           
 java.lang.Object lookup(javax.naming.Name name)
           
 java.lang.Object lookup(java.lang.String context)
           
 java.lang.Object lookupLink(javax.naming.Name name)
           
 java.lang.Object lookupLink(java.lang.String name)
           
 void modifyAttributes(javax.naming.Name name, int modOp, javax.naming.directory.Attributes attrs)
           
 void modifyAttributes(javax.naming.Name name, javax.naming.directory.ModificationItem[] mods)
           
 void modifyAttributes(java.lang.String name, int modOp, javax.naming.directory.Attributes attrs)
           
 void modifyAttributes(java.lang.String name, javax.naming.directory.ModificationItem[] mods)
           
 javax.naming.ldap.LdapContext newInstance(javax.naming.ldap.Control[] reqCtls)
           
 void rebind(javax.naming.Name name, java.lang.Object obj)
           
 void rebind(javax.naming.Name name, java.lang.Object obj, javax.naming.directory.Attributes attrs)
           
 void rebind(java.lang.String name, java.lang.Object obj)
           
 void rebind(java.lang.String name, java.lang.Object obj, javax.naming.directory.Attributes attrs)
           
 void reconnect(javax.naming.ldap.Control[] connCtls)
           
 java.lang.Object removeFromEnvironment(java.lang.String propName)
           
 void rename(javax.naming.Name oldName, javax.naming.Name newName)
           
 void rename(java.lang.String oldName, java.lang.String newName)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name, javax.naming.directory.Attributes matchingAttributes)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name, javax.naming.directory.Attributes matchingAttributes, java.lang.String[] attributesToReturn)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name, java.lang.String filterExpr, java.lang.Object[] filterArgs, javax.naming.directory.SearchControls cons)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name, java.lang.String filter, javax.naming.directory.SearchControls cons)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name, javax.naming.directory.Attributes matchingAttributes)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name, javax.naming.directory.Attributes matchingAttributes, java.lang.String[] attributesToReturn)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name, java.lang.String filterExpr, java.lang.Object[] filterArgs, javax.naming.directory.SearchControls cons)
           
 javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name, java.lang.String filter, javax.naming.directory.SearchControls cons)
           
 void setRequestControls(javax.naming.ldap.Control[] requestControls)
           
 void unbind(javax.naming.Name name)
           
 void unbind(java.lang.String name)
           
 
Methods inherited from class org.teiid.resource.spi.BasicConnection
cleanUp, createInteraction, getLocalTransaction, getMetaData, getResultSetInfo, getXAResource
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LDAP_AUTH_TYPE

public static final java.lang.String LDAP_AUTH_TYPE
See Also:
Constant Field Values

LDAP_USER_OBJECT_TYPE

public static final java.lang.String LDAP_USER_OBJECT_TYPE
See Also:
Constant Field Values

LDAP_REFERRAL_MODE

public static final java.lang.String LDAP_REFERRAL_MODE
See Also:
Constant Field Values
Constructor Detail

LDAPConnectionImpl

public LDAPConnectionImpl(LDAPManagedConnectionFactory config)
                   throws javax.resource.ResourceException
Throws:
javax.resource.ResourceException
Method Detail

close

public void close()
Closes LDAP context, effectively closing the connection to LDAP. (non-Javadoc)

Specified by:
close in interface javax.naming.Context
Specified by:
close in interface javax.resource.cci.Connection

isAlive

public boolean isAlive()
Currently, this method always returns alive. We assume the connection is alive, and rely on proper timeout values to automatically clean up connections before any server-side timeout occurs. Rather than incur overhead by rebinding, we'll assume the connection is always alive, and throw an error when it is actually used, if the connection fails. This may be a more efficient way of handling failed connections, with the one tradeoff that stale connections will not be detected until execution time. In practice, there is no benefit to detecting stale connections before execution time. One possible extension is to implement a UnsolicitedNotificationListener. (non-Javadoc)

Overrides:
isAlive in class BasicConnection
Returns:

lookup

public java.lang.Object lookup(java.lang.String context)
                        throws javax.naming.NamingException
Specified by:
lookup in interface javax.naming.Context
Throws:
javax.naming.NamingException

addToEnvironment

public java.lang.Object addToEnvironment(java.lang.String propName,
                                         java.lang.Object propVal)
                                  throws javax.naming.NamingException
Specified by:
addToEnvironment in interface javax.naming.Context
Throws:
javax.naming.NamingException

bind

public void bind(javax.naming.Name name,
                 java.lang.Object obj,
                 javax.naming.directory.Attributes attrs)
          throws javax.naming.NamingException
Specified by:
bind in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

bind

public void bind(javax.naming.Name name,
                 java.lang.Object obj)
          throws javax.naming.NamingException
Specified by:
bind in interface javax.naming.Context
Throws:
javax.naming.NamingException

bind

public void bind(java.lang.String name,
                 java.lang.Object obj,
                 javax.naming.directory.Attributes attrs)
          throws javax.naming.NamingException
Specified by:
bind in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

bind

public void bind(java.lang.String name,
                 java.lang.Object obj)
          throws javax.naming.NamingException
Specified by:
bind in interface javax.naming.Context
Throws:
javax.naming.NamingException

composeName

public javax.naming.Name composeName(javax.naming.Name name,
                                     javax.naming.Name prefix)
                              throws javax.naming.NamingException
Specified by:
composeName in interface javax.naming.Context
Throws:
javax.naming.NamingException

composeName

public java.lang.String composeName(java.lang.String name,
                                    java.lang.String prefix)
                             throws javax.naming.NamingException
Specified by:
composeName in interface javax.naming.Context
Throws:
javax.naming.NamingException

createSubcontext

public javax.naming.directory.DirContext createSubcontext(javax.naming.Name name,
                                                          javax.naming.directory.Attributes attrs)
                                                   throws javax.naming.NamingException
Specified by:
createSubcontext in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

createSubcontext

public javax.naming.Context createSubcontext(javax.naming.Name name)
                                      throws javax.naming.NamingException
Specified by:
createSubcontext in interface javax.naming.Context
Throws:
javax.naming.NamingException

createSubcontext

public javax.naming.directory.DirContext createSubcontext(java.lang.String name,
                                                          javax.naming.directory.Attributes attrs)
                                                   throws javax.naming.NamingException
Specified by:
createSubcontext in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

createSubcontext

public javax.naming.Context createSubcontext(java.lang.String name)
                                      throws javax.naming.NamingException
Specified by:
createSubcontext in interface javax.naming.Context
Throws:
javax.naming.NamingException

destroySubcontext

public void destroySubcontext(javax.naming.Name name)
                       throws javax.naming.NamingException
Specified by:
destroySubcontext in interface javax.naming.Context
Throws:
javax.naming.NamingException

destroySubcontext

public void destroySubcontext(java.lang.String name)
                       throws javax.naming.NamingException
Specified by:
destroySubcontext in interface javax.naming.Context
Throws:
javax.naming.NamingException

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

extendedOperation

public javax.naming.ldap.ExtendedResponse extendedOperation(javax.naming.ldap.ExtendedRequest request)
                                                     throws javax.naming.NamingException
Specified by:
extendedOperation in interface javax.naming.ldap.LdapContext
Throws:
javax.naming.NamingException

getAttributes

public javax.naming.directory.Attributes getAttributes(javax.naming.Name name,
                                                       java.lang.String[] attrIds)
                                                throws javax.naming.NamingException
Specified by:
getAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

getAttributes

public javax.naming.directory.Attributes getAttributes(javax.naming.Name name)
                                                throws javax.naming.NamingException
Specified by:
getAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

getAttributes

public javax.naming.directory.Attributes getAttributes(java.lang.String name,
                                                       java.lang.String[] attrIds)
                                                throws javax.naming.NamingException
Specified by:
getAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

getAttributes

public javax.naming.directory.Attributes getAttributes(java.lang.String name)
                                                throws javax.naming.NamingException
Specified by:
getAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

getConnectControls

public javax.naming.ldap.Control[] getConnectControls()
                                               throws javax.naming.NamingException
Specified by:
getConnectControls in interface javax.naming.ldap.LdapContext
Throws:
javax.naming.NamingException

getEnvironment

public java.util.Hashtable<?,?> getEnvironment()
                                        throws javax.naming.NamingException
Specified by:
getEnvironment in interface javax.naming.Context
Throws:
javax.naming.NamingException

getNameInNamespace

public java.lang.String getNameInNamespace()
                                    throws javax.naming.NamingException
Specified by:
getNameInNamespace in interface javax.naming.Context
Throws:
javax.naming.NamingException

getNameParser

public javax.naming.NameParser getNameParser(javax.naming.Name name)
                                      throws javax.naming.NamingException
Specified by:
getNameParser in interface javax.naming.Context
Throws:
javax.naming.NamingException

getNameParser

public javax.naming.NameParser getNameParser(java.lang.String name)
                                      throws javax.naming.NamingException
Specified by:
getNameParser in interface javax.naming.Context
Throws:
javax.naming.NamingException

getRequestControls

public javax.naming.ldap.Control[] getRequestControls()
                                               throws javax.naming.NamingException
Specified by:
getRequestControls in interface javax.naming.ldap.LdapContext
Throws:
javax.naming.NamingException

getResponseControls

public javax.naming.ldap.Control[] getResponseControls()
                                                throws javax.naming.NamingException
Specified by:
getResponseControls in interface javax.naming.ldap.LdapContext
Throws:
javax.naming.NamingException

getSchema

public javax.naming.directory.DirContext getSchema(javax.naming.Name name)
                                            throws javax.naming.NamingException
Specified by:
getSchema in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

getSchema

public javax.naming.directory.DirContext getSchema(java.lang.String name)
                                            throws javax.naming.NamingException
Specified by:
getSchema in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

getSchemaClassDefinition

public javax.naming.directory.DirContext getSchemaClassDefinition(javax.naming.Name name)
                                                           throws javax.naming.NamingException
Specified by:
getSchemaClassDefinition in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

getSchemaClassDefinition

public javax.naming.directory.DirContext getSchemaClassDefinition(java.lang.String name)
                                                           throws javax.naming.NamingException
Specified by:
getSchemaClassDefinition in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

list

public javax.naming.NamingEnumeration<javax.naming.NameClassPair> list(javax.naming.Name name)
                                                                throws javax.naming.NamingException
Specified by:
list in interface javax.naming.Context
Throws:
javax.naming.NamingException

list

public javax.naming.NamingEnumeration<javax.naming.NameClassPair> list(java.lang.String name)
                                                                throws javax.naming.NamingException
Specified by:
list in interface javax.naming.Context
Throws:
javax.naming.NamingException

listBindings

public javax.naming.NamingEnumeration<javax.naming.Binding> listBindings(javax.naming.Name name)
                                                                  throws javax.naming.NamingException
Specified by:
listBindings in interface javax.naming.Context
Throws:
javax.naming.NamingException

listBindings

public javax.naming.NamingEnumeration<javax.naming.Binding> listBindings(java.lang.String name)
                                                                  throws javax.naming.NamingException
Specified by:
listBindings in interface javax.naming.Context
Throws:
javax.naming.NamingException

lookup

public java.lang.Object lookup(javax.naming.Name name)
                        throws javax.naming.NamingException
Specified by:
lookup in interface javax.naming.Context
Throws:
javax.naming.NamingException

lookupLink

public java.lang.Object lookupLink(javax.naming.Name name)
                            throws javax.naming.NamingException
Specified by:
lookupLink in interface javax.naming.Context
Throws:
javax.naming.NamingException

lookupLink

public java.lang.Object lookupLink(java.lang.String name)
                            throws javax.naming.NamingException
Specified by:
lookupLink in interface javax.naming.Context
Throws:
javax.naming.NamingException

modifyAttributes

public void modifyAttributes(javax.naming.Name name,
                             int modOp,
                             javax.naming.directory.Attributes attrs)
                      throws javax.naming.NamingException
Specified by:
modifyAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

modifyAttributes

public void modifyAttributes(javax.naming.Name name,
                             javax.naming.directory.ModificationItem[] mods)
                      throws javax.naming.NamingException
Specified by:
modifyAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

modifyAttributes

public void modifyAttributes(java.lang.String name,
                             int modOp,
                             javax.naming.directory.Attributes attrs)
                      throws javax.naming.NamingException
Specified by:
modifyAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

modifyAttributes

public void modifyAttributes(java.lang.String name,
                             javax.naming.directory.ModificationItem[] mods)
                      throws javax.naming.NamingException
Specified by:
modifyAttributes in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

newInstance

public javax.naming.ldap.LdapContext newInstance(javax.naming.ldap.Control[] reqCtls)
                                          throws javax.naming.NamingException
Specified by:
newInstance in interface javax.naming.ldap.LdapContext
Throws:
javax.naming.NamingException

rebind

public void rebind(javax.naming.Name name,
                   java.lang.Object obj,
                   javax.naming.directory.Attributes attrs)
            throws javax.naming.NamingException
Specified by:
rebind in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

rebind

public void rebind(javax.naming.Name name,
                   java.lang.Object obj)
            throws javax.naming.NamingException
Specified by:
rebind in interface javax.naming.Context
Throws:
javax.naming.NamingException

rebind

public void rebind(java.lang.String name,
                   java.lang.Object obj,
                   javax.naming.directory.Attributes attrs)
            throws javax.naming.NamingException
Specified by:
rebind in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

rebind

public void rebind(java.lang.String name,
                   java.lang.Object obj)
            throws javax.naming.NamingException
Specified by:
rebind in interface javax.naming.Context
Throws:
javax.naming.NamingException

reconnect

public void reconnect(javax.naming.ldap.Control[] connCtls)
               throws javax.naming.NamingException
Specified by:
reconnect in interface javax.naming.ldap.LdapContext
Throws:
javax.naming.NamingException

removeFromEnvironment

public java.lang.Object removeFromEnvironment(java.lang.String propName)
                                       throws javax.naming.NamingException
Specified by:
removeFromEnvironment in interface javax.naming.Context
Throws:
javax.naming.NamingException

rename

public void rename(javax.naming.Name oldName,
                   javax.naming.Name newName)
            throws javax.naming.NamingException
Specified by:
rename in interface javax.naming.Context
Throws:
javax.naming.NamingException

rename

public void rename(java.lang.String oldName,
                   java.lang.String newName)
            throws javax.naming.NamingException
Specified by:
rename in interface javax.naming.Context
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name,
                                                                                  javax.naming.directory.Attributes matchingAttributes,
                                                                                  java.lang.String[] attributesToReturn)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name,
                                                                                  javax.naming.directory.Attributes matchingAttributes)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name,
                                                                                  java.lang.String filterExpr,
                                                                                  java.lang.Object[] filterArgs,
                                                                                  javax.naming.directory.SearchControls cons)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(javax.naming.Name name,
                                                                                  java.lang.String filter,
                                                                                  javax.naming.directory.SearchControls cons)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name,
                                                                                  javax.naming.directory.Attributes matchingAttributes,
                                                                                  java.lang.String[] attributesToReturn)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name,
                                                                                  javax.naming.directory.Attributes matchingAttributes)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name,
                                                                                  java.lang.String filterExpr,
                                                                                  java.lang.Object[] filterArgs,
                                                                                  javax.naming.directory.SearchControls cons)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration<javax.naming.directory.SearchResult> search(java.lang.String name,
                                                                                  java.lang.String filter,
                                                                                  javax.naming.directory.SearchControls cons)
                                                                           throws javax.naming.NamingException
Specified by:
search in interface javax.naming.directory.DirContext
Throws:
javax.naming.NamingException

setRequestControls

public void setRequestControls(javax.naming.ldap.Control[] requestControls)
                        throws javax.naming.NamingException
Specified by:
setRequestControls in interface javax.naming.ldap.LdapContext
Throws:
javax.naming.NamingException

unbind

public void unbind(javax.naming.Name name)
            throws javax.naming.NamingException
Specified by:
unbind in interface javax.naming.Context
Throws:
javax.naming.NamingException

unbind

public void unbind(java.lang.String name)
            throws javax.naming.NamingException
Specified by:
unbind in interface javax.naming.Context
Throws:
javax.naming.NamingException


Copyright © 2010. All Rights Reserved.