public class InitialLdapContext extends InitialDirContext implements LdapContext
有关同步的详细信息,请参阅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类描述中的“服务提供商”部分,了解实施细节。
defaultInitCtx, gotDefault, myProps
CONTROL_FACTORIES
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
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 and Description |
---|
InitialLdapContext()
构造一个不使用环境属性或连接请求控件的初始上下文。
|
InitialLdapContext(Hashtable<?,?> environment, Control[] connCtls)
使用环境属性和连接请求控件构造初始上下文。
|
Modifier and Type | Method and Description |
---|---|
ExtendedResponse |
extendedOperation(ExtendedRequest request)
执行扩展操作。
|
Control[] |
getConnectControls()
检索此上下文的连接请求控件。
|
Control[] |
getRequestControls()
检索对该上下文有效的请求控件。
|
Control[] |
getResponseControls()
检索由此上下文调用的最后一个方法生成的响应控件。
|
LdapContext |
newInstance(Control[] reqCtls)
创建使用请求控件初始化的此上下文的新实例。
|
void |
reconnect(Control[] connCtls)
使用提供的控件和此上下文的环境重新连接到LDAP服务器。
|
void |
setRequestControls(Control[] requestControls)
设置随后在此上下文中调用的方法的请求控件。
|
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
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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
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
此构造函数不会修改其参数或保存对它们的引用,但可以保存克隆或副本。 environment传递给构造函数后,调用者不应修改可变键和值。
connCtls用作底层上下文实例的连接请求控件。 有关详细信息,请参阅课程说明。
environment
- 用于创建初始DirContext的环境。
空指示空的环境。
connCtls
- 初始上下文的连接请求控制。
如果为空,则不使用连接请求控件。
NamingException
- 如果遇到命名异常
reconnect(javax.naming.ldap.Control[])
,
LdapContext.reconnect(javax.naming.ldap.Control[])
public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException
LdapContext
复制
extendedOperation
在界面
LdapContext
request
- 要执行的非空请求。
NamingException
- 执行扩展操作时是否发生错误。
public LdapContext newInstance(Control[] reqCtls) throws NamingException
LdapContext
新上下文具有与上下文相同的环境属性和连接请求控件。 有关详细信息,请参阅课程说明。 如果这样做,实现也可能允许这个上下文和新的上下文共享相同的网络连接或其他资源,而不会妨碍任一上下文的独立性。
newInstance
在界面
LdapContext
reqCtls
- 用于新上下文的可能的空请求控件。
如果为空,则无需请求控制即可初始化上下文。
NamingException
- 创建新实例时是否发生错误。
InitialLdapContext
public void reconnect(Control[] connCtls) throws NamingException
LdapContext
复制
此方法是显式启动LDAP“绑定”操作的一种方法。 例如,您可以使用此方法设置LDAP“绑定”操作的请求控制,或者显式连接到服务器以获取LDAP“绑定”操作返回的响应控件。
此方法将此上下文的connCtls设置为其新的连接请求控件。 此上下文的上下文请求控件不受影响。 在调用此方法之后,任何后续的隐式重新连接将使用connCtls完成。 connCtls也被用作从这个上下文导出的新上下文实例的连接请求控制。 这些连接请求控制不受setRequestControls()的影响。
服务提供商的实现者应该在类描述中阅读“服务提供者”部分,了解实现细节。
reconnect
在界面
LdapContext
connCtls
- 可能使用的空控件。
如果为空,则不使用控件。
NamingException
- 重新连接时发生错误。
LdapContext.getConnectControls()
,
LdapContext.newInstance(javax.naming.ldap.Control[])
public Control[] getConnectControls() throws NamingException
LdapContext
复制
getConnectControls
在界面
LdapContext
NamingException
- 如果在获取请求控件时发生错误。
public void setRequestControls(Control[] requestControls) throws NamingException
LdapContext
复制
这将删除任何以前的请求控件,并添加requestControls以供在此上下文中调用的后续方法使用。 此方法不影响此上下文的连接请求控件。
请注意, requestControls将在下一次调用setRequestControls()之前生效 。 您需要显式地调用setRequestControls()与null或一个空数组来清除控件,如果您不希望它们影响上下文方法。 要查看哪些请求控件对此上下文有效,请使用getRequestControls() 。
setRequestControls
在界面
LdapContext
requestControls
- 可能使用的空控件。
如果为空,则不使用控件。
NamingException
- 设置请求控件时是否发生错误。
LdapContext.getRequestControls()
public Control[] getRequestControls() throws NamingException
LdapContext
复制
getRequestControls
在界面
LdapContext
NamingException
- 如果在获取请求控件时发生错误。
LdapContext.setRequestControls(javax.naming.ldap.Control[])
public Control[] getResponseControls() throws NamingException
LdapContext
复制
这些响应控制可能是由成功或失败的操作生成的。
当调用可能返回响应控件的上下文方法时,将清除来自先前方法调用的响应控制。 getResponseControls()以从LDAP服务器接收的顺序返回由上下文方法使用的LDAP操作生成的所有响应控件。 调用getResponseControls()不会清除响应控件。 您可以多次调用它(并返回相同的控件),直到调用可能返回控件的下一个上下文方法。
getResponseControls
在界面
LdapContext
NamingException
- If an error occurred while getting the response controls.