- 所有已实现的接口:
-
Context
,DirContext
,LdapContext
请参阅javax.naming.InitialContext
和javax.naming.InitialDirContext
以获取有关同步的详细信息,以及有关如何创建初始上下文的策略。
请求控件
当您创建一个初始上下文(InitialLdapContext
)时,可以指定一个请求控件列表。这些控件将被用作上下文或从上下文派生的上下文执行的任何隐式LDAP“绑定”操作的请求控件。这些被称为连接请求控件。使用getConnectControls()
来获取上下文的连接请求控件。
提供给初始上下文构造函数的请求控件不会用作后续上下文操作(如搜索和查找)的上下文请求控件。通过使用setRequestControls()
来设置和更新上下文请求控件。
如所示,一个上下文可以关联两组不同的请求控件:连接请求控件和上下文请求控件。对于那些需要发送可能不适用于上下文操作和任何隐式LDAP“绑定”操作的关键控件的应用程序,这是必需的。一个典型的用户程序可能会执行以下操作:
它首先指定用于创建初始上下文的关键控件(InitialLdapContext lctx = new InitialLdapContext(env, critConnCtls); lctx.setRequestControls(critModCtls); lctx.modifyAttributes(name, mods); Controls[] respCtls = lctx.getResponseControls();
critConnCtls
),然后为上下文操作设置上下文的请求控件(critModCtls
)。如果由于某种原因lctx
需要重新连接到服务器,它将使用critConnCtls
。有关请求控件的更多讨论,请参阅LdapContext
接口。
服务提供程序实现者应阅读LdapContext
类描述中的“服务提供程序”部分以获取实现详细信息。
- 自:
- 1.3
- 另请参阅:
-
Field Summary
Fields declared in class javax.naming.InitialContext
defaultInitCtx, gotDefault, myProps
Fields declared in 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
Fields declared in interface javax.naming.directory.DirContext
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
Fields declared in interface javax.naming.ldap.LdapContext
CONTROL_FACTORIES
-
Constructor Summary
ConstructorDescription使用没有环境属性或连接请求控件构造初始上下文。InitialLdapContext
(Hashtable<?, ?> environment, Control[] connCtls) 使用环境属性和连接请求控件构造初始上下文。 -
Method Summary
Modifier and TypeMethodDescriptionextendedOperation
(ExtendedRequest request) 执行扩展操作。Control[]
检索此上下文中生效的连接请求控件。Control[]
检索此上下文中生效的请求控件。Control[]
检索由此上下文上一次调用方法产生的响应控件。newInstance
(Control[] reqCtls) 使用请求控件初始化此上下文的新实例。void
使用提供的控件和此上下文的环境重新连接到LDAP服务器。void
setRequestControls
(Control[] requestControls) 为随后在此上下文上调用的方法设置请求控件。Methods declared in class 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
Methods declared in class javax.naming.InitialContext
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, doLookup, doLookup, getDefaultInitCtx, getEnvironment, getNameInNamespace, getNameParser, getNameParser, getURLOrDefaultInitCtx, getURLOrDefaultInitCtx, init, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface 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
Methods declared in interface 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
-
Constructor Details
-
InitialLdapContext
使用没有环境属性或连接请求控件构造初始上下文。等同于new InitialLdapContext(null, null)
。- 抛出:
-
NamingException
- 如果遇到命名异常
-
InitialLdapContext
使用环境属性和连接请求控件构造初始上下文。请参阅javax.naming.InitialContext
以获取有关环境属性的讨论。此构造函数不会修改其参数或保存对它们的引用,但可能会保存克隆或副本。调用者不应在传递给构造函数后修改
environment
中的可变键和值。connCtls
用作底层上下文实例的连接请求控件。有关详细信息,请参阅类描述。- 参数:
-
environment
- 用于创建初始DirContext的环境。Null表示空环境。 -
connCtls
- 用于初始上下文的连接请求控件。如果为null,则不使用连接请求控件。 - 抛出:
-
NamingException
- 如果遇到命名异常 - 另请参阅:
-
-
Method Details
-
extendedOperation
从接口复制的描述:LdapContext
执行扩展操作。此方法用于支持LDAPv3扩展操作。- 指定者:
-
extendedOperation
在接口LdapContext
- 参数:
-
request
- 要执行的非空请求。 - 返回:
- 操作的可能为null的响应。null表示操作未生成任何响应。
- 抛出:
-
NamingException
- 如果执行扩展操作时发生错误
-
newInstance
从接口复制的描述:LdapContext
使用请求控件初始化此上下文的新实例。此方法是用于创建此上下文的新实例以支持多线程访问的便利方法。例如,如果多个线程想要使用不同的上下文请求控件,每个线程可以使用此方法获取其自己的此上下文副本,并设置/获取上下文请求控件,而无需与其他线程同步。新上下文具有与此上下文相同的环境属性和连接请求控件。有关详细信息,请参阅类描述。如果实现允许此上下文和新上下文共享相同的网络连接或其他资源,而不会妨碍任一上下文的独立性,则可能会这样做。
- 指定者:
-
newInstance
在接口LdapContext
- 参数:
-
reqCtls
- 用于新上下文的可能为null的请求控件。如果为null,则上下文将初始化为没有请求控件。 - 返回:
-
一个非null的
LdapContext
实例。 - 抛出:
-
NamingException
- 如果创建新实例时发生错误 - 另请参阅:
-
reconnect
从接口复制的描述:LdapContext
使用提供的控件和此上下文的环境重新连接到LDAP服务器。此方法是显式启动LDAP“绑定”操作的一种方式。例如,您可以使用此方法为LDAP“绑定”操作设置请求控件,或者显式连接到服务器以获取LDAP“绑定”操作返回的响应控件。
此方法将此上下文的
connCtls
设置为其新的连接请求控件。此上下文的上下文请求控件不受影响。调用此方法后,任何后续的隐式重新连接将使用connCtls
。对于从此上下文派生的新上下文实例,这些连接请求控件也将用作连接请求控件。这些连接请求控件不受setRequestControls()
的影响。服务提供程序实现者应阅读类描述中的“服务提供程序”部分以获取实现详细信息。
- 指定者:
-
reconnect
在接口LdapContext
- 参数:
-
connCtls
- 要使用的可能为null的控件。如果为null,则不使用任何控件。 - 抛出:
-
NamingException
- 如果重新连接时发生错误 - 另请参阅:
-
getConnectControls
从接口复制的描述:LdapContext
检索此上下文中生效的连接请求控件。这些控件由JNDI实现拥有,并且是不可变的。调用者不能修改数组或控件。- 指定由:
-
getConnectControls
在接口LdapContext
- 返回:
- 可能为null的控件数组。null表示未为此上下文设置连接控件。
- 抛出:
-
NamingException
- 如果在获取请求控件时发生错误。
-
setRequestControls
从接口复制的描述:LdapContext
设置随后在此上下文上调用的方法的请求控件。请求控件由JNDI实现拥有并且是不可变的。调用者不能修改数组或控件。这将删除任何先前的请求控件,并添加
requestControls
以供随后在此上下文上调用的方法使用。此方法不会影响此上下文的连接请求控件。请注意,
requestControls
将在下一次调用setRequestControls()
之前生效。如果您不希望控件再影响上下文方法,请显式使用null
或空数组调用setRequestControls()
以清除控件。要检查此上下文的有效请求控件,请使用getRequestControls()
。- 指定由:
-
setRequestControls
在接口LdapContext
- 参数:
-
requestControls
- 可能为null的控件。如果为null,则不使用任何控件。 - 抛出:
-
NamingException
- 如果在设置请求控件时发生错误。 - 参见:
-
getRequestControls
从接口复制的描述:LdapContext
检索此上下文生效的请求控件。请求控件由JNDI实现拥有并且是不可变的。调用者不能修改数组或控件。- 指定由:
-
getRequestControls
在接口LdapContext
- 返回:
- 可能为null的控件数组。如果为null,则表示未为此上下文设置请求控件。
- 抛出:
-
NamingException
- 如果在获取请求控件时发生错误。 - 参见:
-
getResponseControls
从接口复制的描述:LdapContext
检索由此上下文上最后调用的方法产生的响应控件。响应控件由JNDI实现拥有并且是不可变的。调用者不能修改数组或控件。这些响应控件可能由成功或失败的操作生成。
当调用可能返回响应控件的上下文方法时,将清除上一个方法调用产生的响应控件。
getResponseControls()
按从LDAP服务器接收的顺序返回上下文方法使用的LDAP操作生成的所有响应控件。调用getResponseControls()
不会清除响应控件。您可以多次调用它(并获得相同的控件),直到调用可能返回控件的下一个上下文方法为止。- 指定由:
-
getResponseControls
在接口LdapContext
- 返回:
- 可能为null的控件数组。如果为null,则表示此上下文上上一个方法调用未产生任何控件。
- 抛出:
-
NamingException
- 如果在获取响应控件时发生错误。
-