|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.naming.ldap
类 InitialLdapContext
java.lang.Object javax.naming.InitialContext javax.naming.directory.InitialDirContext javax.naming.ldap.InitialLdapContext
- 所有已实现的接口:
- Context, DirContext, LdapContext
-
public class InitialLdapContext
- extends InitialDirContext
- implements LdapContext
此类是执行 LDAPv3 样式的扩展操作和控件的初始上下文。
有关同步的详细信息和如何创建初始上下文的策略,请参阅 javax.naming.InitialContext 和 javax.naming.InitialDirContext。
请求控件
创建初始上下文 (InitialLdapContext) 时,可以指定请求控件列表。这些控件将用作由上下文或从上下文派生的上下文执行的所有隐式 LDAP“绑定”操作的请求控件。它们被称为连接请求控件。使用 getConnectControls() 获取上下文的连接请求控件。提供给初始上下文构造方法的请求控件不能 用作后续上下文操作(如搜索和查找)的上下文请求控件。上下文请求控件可以通过使用 setRequestControls() 设置和更新。
请求控件可以有如下两个与上下文关联的不同集合:连接请求控件和上下文请求控件。对于那些需要发送不能同时应用于上下文操作和任何隐式 LDAP“绑定”操作的关键控件的应用程序而言,这一点是必需的。典型的用户程序将执行以下操作:
它首先指定用于创建初始上下文 (critConnCtls) 的关键控件,然后设置上下文的请求控件 (critModCtls) 进行上下文操作。如果出于某种原因 lctx 需要重新连接到服务器,则它将使用 critConnCtls。有关请求控件的更多讨论,请参见 LdapContext 接口。InitialLdapContext lctx = new InitialLdapContext(env, critConnCtls); lctx.setRequestControls(critModCtls); lctx.modifyAttributes(name, mods); Controls[] respCtls = lctx.getResponseControls();
服务提供程序的实现方应该参阅 LdapContext 类描述中的 "Service Provider" 一节,以获取实现的详细信息。
- 从以下版本开始:
- 1.3
- 另请参见:
-
LdapContext
,InitialContext
,InitialDirContext
,NamingManager.setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)
字段摘要 |
---|
从类 javax.naming.InitialContext 继承的字段 |
---|
defaultInitCtx, gotDefault, myProps |
从接口 javax.naming.ldap.LdapContext 继承的字段 |
---|
CONTROL_FACTORIES |
从接口 javax.naming.directory.DirContext 继承的字段 |
---|
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE |
构造方法摘要 | |
---|---|
InitialLdapContext() 不使用任何环境属性或连接请求控件构造初始上下文。 |
|
InitialLdapContext(Hashtable<?,?> environment, Control[] connCtls) 使用环境属性或连接请求控件构造初始上下文。 |
方法摘要 | |
---|---|
ExtendedResponse |
extendedOperation(ExtendedRequest request) 执行扩展操作。 |
Control[] |
getConnectControls() 检索对此上下文有效的连接请求控件。 |
Control[] |
getRequestControls() 检索对此上下文有效的请求控件。 |
Control[] |
getResponseControls() 检索对此上下文调用的最后一个方法所生成的响应控件。 |
LdapContext |
newInstance(Control[] reqCtls) 创建此上下文的新实例,使用请求控件进行初始化。 |
void |
reconnect(Control[] connCtls) 使用提供的控件和此上下文的环境重新连接到 LDAP 服务器。 |
void |
setRequestControls(Control[] requestControls) 为在此上下文上后续调用的方法设置请求控件。 |
从类 javax.naming.directory.InitialDirContext 继承的方法 |
---|
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从接口 javax.naming.directory.DirContext 继承的方法 |
---|
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search |
从接口 javax.naming.Context 继承的方法 |
---|
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind |
构造方法详细信息 |
---|
InitialLdapContext
public InitialLdapContext() throws NamingException
-
不使用任何环境属性或连接请求控件构造初始上下文。与 new InitialLdapContext(null) 等效。
- 抛出:
-
NamingException
- 如果遇到命名异常
InitialLdapContext
public InitialLdapContext(Hashtable<?,?> environment, Control[] connCtls) throws NamingException
-
使用环境属性或连接请求控件构造初始上下文。有关环境属性的讨论,请参阅 javax.naming.InitialContext。
此构造方法将不修改其参数或保存对它们的引用,但可能保存一个克隆或副本。
connCtls 用作基础上下文实例的连接请求控件。有关详细信息请参阅类描述。
- 参数:
-
environment
- 用于创建初始 DirContext 的环境。null 指示空环境。 -
connCtls
- 初始上下文的连接请求控件。如果为 null,则不使用任何连接请求控件。 - 抛出:
-
NamingException
- 如果遇到命名异常 - 另请参见:
-
reconnect(javax.naming.ldap.Control[])
,LdapContext.reconnect(javax.naming.ldap.Control[])
方法详细信息 |
---|
extendedOperation
public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException
-
从接口
LdapContext
复制的描述 - 执行扩展操作。 此方法用于支持 LDAPv3 扩展操作。
-
- 指定者:
-
接口
LdapContext
中的extendedOperation
-
- 参数:
-
request
- 要执行的非 null 请求。 - 返回:
- 操作的响应(可能为 null)。null 表示操作没有生成任何响应。
- 抛出:
-
NamingException
- 如果在执行扩展操作时出错。
newInstance
public LdapContext newInstance(Control[] reqCtls) throws NamingException
-
从接口
LdapContext
复制的描述 -
创建此上下文的新实例,使用请求控件进行初始化。 此方法是为了进行多线程访问而创建此上下文新实例的便捷方法。例如,如果多个线程要使用不同的上下文请求控件,则每个线程可以使用此方法获取它自己的此上下文的副本,并设置/获取上下文请求控件,无需与其他线程同步。
新上下文与此上下文具有相同的环境属性和连接请求控件。有关详细信息请参阅类描述。实现可能还允许此上下文和新上下文共享同一个网络连接或其他资源,如果这样做不妨碍这两种上下文各自的独立性。
-
- 指定者:
-
接口
LdapContext
中的newInstance
-
- 参数:
-
reqCtls
- 要用于新上下文的请求控件(可能为 null)。如果为 null,则不使用任何请求控件初始化上下文。 - 返回:
- 非 null LdapContext 实例。
- 抛出:
-
NamingException
- 如果在创建新实例时出错。 - 另请参见:
-
InitialLdapContext
reconnect
public void reconnect(Control[] connCtls) throws NamingException
-
从接口
LdapContext
复制的描述 -
使用提供的控件和此上下文的环境重新连接到 LDAP 服务器。
此方法是一种显式启动 LDAP“绑定”操作的方式。例如,可以使用此方法为 LDAP“绑定”操作设置请求控件,或者显式连接到服务器以获取由 LDAP“绑定”操作返回的响应控件。
此方法将此上下文的 connCtls 设置为其新连接请求控件。此上下文的上下文请求控件将不受影响。调用此方法后,所有后续隐式重接将使用 connCtls 完成。connCtls 还可用作从此上下文派生的新上下文实例的连接请求控件。这些连接请求控件将不受 setRequestControls() 的影响。
服务提供程序的实现方应该读取类描述中的“服务提供程序”一节,以获取实现详细信息。
-
- 指定者:
-
接口
LdapContext
中的reconnect
-
- 参数:
-
connCtls
- 要使用的控件(可能为 null)。如果为 null,则不使用任何控件。 - 抛出:
-
NamingException
- 如果重接时出错。 - 另请参见:
-
LdapContext.getConnectControls()
,LdapContext.newInstance(javax.naming.ldap.Control[])
getConnectControls
public Control[] getConnectControls() throws NamingException
-
从接口
LdapContext
复制的描述 - 检索对此上下文有效的连接请求控件。JNDI 实现所拥有的控件是不可变的。调用方既不能修改数组也不能修改控件。
-
- 指定者:
-
接口
LdapContext
中的getConnectControls
-
- 返回:
- 控件数组(可能为 null)。null 表示没有为此上下文设置任何连接控件。
- 抛出:
-
NamingException
- 如果在获取请求控件时出错。
setRequestControls
public void setRequestControls(Control[] requestControls) throws NamingException
-
从接口
LdapContext
复制的描述 -
为在此上下文上后续调用的方法设置请求控件。JNDI 实现所拥有的请求控件是不可变的。调用方既不能修改数组也不能修改控件。
此操作移除所有以前的请求控件,并添加 requestControls 供在此上下文上调用的后续方法使用。此方法不影响此上下文的连接请求控件。
注意,在下一次调用 setRequestControls() 之前 requestControls 一直有效。如果不想让这些控件继续影响上下文方法,则需要使用 null 或空数组作为参数显式调用 setRequestControls() 来清除它们。要检查对此上下文有效的请求控件,请使用 getRequestControls()。
-
- 指定者:
-
接口
LdapContext
中的setRequestControls
-
- 参数:
-
requestControls
- 要使用的控件(可能为 null)。如果为 null,则不使用任何控件。 - 抛出:
-
NamingException
- 如果在设置请求控件时出错。 - 另请参见:
-
LdapContext.getRequestControls()
getRequestControls
public Control[] getRequestControls() throws NamingException
-
从接口
LdapContext
复制的描述 - 检索对此上下文有效的请求控件。JNDI 实现所拥有的请求控件是不可变的。调用方既不能修改数组也不能修改控件。
-
- 指定者:
-
接口
LdapContext
中的getRequestControls
-
- 返回:
- 控件数组(可能为 null)。null 表示没有为此上下文设置任何请求控件。
- 抛出:
-
NamingException
- 如果在获取请求控件时出错。 - 另请参见:
-
LdapContext.setRequestControls(javax.naming.ldap.Control[])