java.lang.Object javax.naming.InitialContext javax.naming.directory.InitialDirContext javax.naming.ldap.InitialLdapContext
public class InitialLdapContext
此类是执行 LDAPv3 样式的扩展操作和控件的初始上下文。
有关同步的详细信息和如何创建初始上下文的策略,请参阅 javax.naming.InitialContext 和 javax.naming.InitialDirContext。
提供给初始上下文构造方法的请求控件不能 用作后续上下文操作(如搜索和查找)的上下文请求控件。上下文请求控件可以通过使用 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" 一节,以获取实现的详细信息。
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 |
构造方法详细信息 |
---|
public InitialLdapContext() throws NamingException
NamingException
- 如果遇到命名异常
public InitialLdapContext(Hashtable<?,?> environment, Control[] connCtls) throws NamingException
此构造方法将不修改其参数或保存对它们的引用,但可能保存一个副本。
connCtls 用作基础上下文实例的连接请求控件。有关详细信息请参阅类描述。
environment
- 用于创建初始 DirContext 的环境。null 指示空环境。
connCtls
- 初始上下文的连接请求控件。如果为 null,则不使用任何连接请求控件。
NamingException
- 如果遇到命名异常
reconnect(javax.naming.ldap.Control[])
,
LdapContext.reconnect(javax.naming.ldap.Control[])
方法详细信息 |
---|
public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException
LdapContext
复制的描述
LdapContext
中的
extendedOperation
request
- 要执行的非 null 请求。
NamingException
- 如果在执行扩展操作时出错。
public LdapContext newInstance(Control[] reqCtls) throws NamingException
LdapContext
复制的描述
新上下文与此上下文具有相同的环境属性和连接请求控件。有关详细信息请参阅类描述。实现可能还允许此上下文和新上下文共享同一个网络连接或其他资源,如果这样做不妨碍这两种上下文各自的独立性。
LdapContext
中的
newInstance
reqCtls
- 要用于新上下文的请求控件(可能为 null)。如果为 null,则不使用任何请求控件初始化上下文。
NamingException
- 如果在创建新实例时出错。
InitialLdapContext
public void reconnect(Control[] connCtls) throws NamingException
LdapContext
复制的描述
此方法是一种显式启动 LDAP“绑定”操作的方式。例如,可以使用此方法为 LDAP“绑定”操作设置请求控件,或者显式连接到服务器以获取由 LDAP“绑定”操作返回的响应控件。
此方法将此上下文的 connCtls 设置为其新连接请求控件。此上下文的上下文请求控件将不受影响。调用此方法后,所有后续隐式重接将使用 connCtls 完成。connCtls 还可用作从此上下文派生的新上下文实例的连接请求控件。这些连接请求控件将不受 setRequestControls() 的影响。
服务提供者的实现方应该读取类描述中的“服务提供者”一节,以获取实现详细信息。
LdapContext
中的
reconnect
connCtls
- 要使用的控件(可能为 null)。如果为 null,则不使用任何控件。
NamingException
- 如果重接时出错。
LdapContext.getConnectControls()
,
LdapContext.newInstance(javax.naming.ldap.Control[])
public Control[] getConnectControls() throws NamingException
LdapContext
复制的描述
LdapContext
中的
getConnectControls
NamingException
- 如果在获取请求控件时出错。
public void setRequestControls(Control[] requestControls) throws NamingException
LdapContext
复制的描述
此操作移除所有以前的请求控件,并添加 requestControls 供在此上下文上调用的后续方法使用。此方法不影响此上下文的连接请求控件。
注意,在下一次调用 setRequestControls() 之前 requestControls 一直有效。如果不想让这些控件继续影响上下文方法,则需要使用 null 或空数组作为参数显式调用 setRequestControls() 来清除它们。要检查对此上下文有效的请求控件,请使用 getRequestControls()。
LdapContext
中的
setRequestControls
requestControls
- 要使用的控件(可能为 null)。如果为 null,则不使用任何控件。
NamingException
- 如果在设置请求控件时出错。
LdapContext.getRequestControls()
public Control[] getRequestControls() throws NamingException
LdapContext
复制的描述
LdapContext
中的
getRequestControls
NamingException
- 如果在获取请求控件时出错。
LdapContext.setRequestControls(javax.naming.ldap.Control[])
public Control[] getResponseControls() throws NamingException
LdapContext
复制的描述
这些响应控件可能由成功或失败的操作生成。
调用可能返回响应控件的上下文方法时,上一个方法调用生成的响应控件将被清除。getResponseControls()(按照从 LDAP 服务器收到响应控件的顺序) 返回上下文方法使用的 LDAP 操作生成的所有响应控件。调用 getResponseControls() 不清除响应控件。在调用可能返回控件的下一个上下文方法之前,可以多次调用它(并返回相同的控件)。
LdapContext
中的
getResponseControls
NamingException
- 如果在获取响应控件时出错。