LDAP 操作如何 Map 到 JNDI API

LDAP 定义了一组操作或请求(请参阅RFC 2251)。在 JNDI 中,这些 Map 到DirContextLdapContextinterface(是Context的子interface)上的操作。例如,当调用者调用DirContext方法时,LDAP 服务提供者通过将 LDAP 请求发送到 LDAP 服务器来实现该方法。

下表显示了 LDAP 中的操作如何与 JNDI 方法相对应。

LDAP Operation对应的 JNDI 方法
bind在 JNDI 中创建到 LDAP 服务器的初始连接的相应方法是创建InitialDirContext。当应用程序创建初始上下文时,它将通过环境属性提供 Client 端身份验证信息。要更改现有上下文的身份验证信息,请使用Context.addToEnvironment()Context.removeFromEnvironment()
unbindContext.close()用于释放上下文使用的资源。它与 LDAP“解除绑定”操作的不同之处在于,在给定的服务提供者实现中,资源可以在上下文之间共享,因此,如果一个资源与另一个上下文共享,则关闭一个上下文不会释放所有资源。如果您打算释放所有资源,请确保关闭所有上下文。
searchJNDI 中的相应方法是DirContext.search()的重载,该重载接受搜索过滤器(RFC 2254)。请参见filter示例。
modifyJNDI 中的相应方法是DirContext.modifyAttributes()的重载,它接受DirContext.ModificationItems的数组。有关示例,请参见Modify Attributes部分。
addJNDI 中的相应方法是DirContext.bind()DirContext.createSubcontext()。您可以使用任何一个添加新的 LDAP 条目。使用bind\(\),不仅可以为新条目指定一组属性,还可以指定要与这些属性一起添加的 Java 对象。有关示例,请参见使用属性添加,替换绑定部分。
deleteJNDI 中的相应方法是Context.unbind()Context.destroySubcontext()。您可以使用任一删除 LDAP 条目。
modify DN/RDNJNDI 中的对应方法是Context.rename()。有关更多详细信息,请参见Renaming Objects部分。
compareJNDI 中的相应操作是适当约束的DirContext.search()。有关示例,请参见LDAP Compare部分。
abandon当您关闭上下文时,将放弃所有未完成的请求。同样,当您关闭NamingEnumeration时,将放弃相应的 LDAP“搜索”请求。
extended operationJNDI 中的对应方法是LdapContext.extendedOperation()。有关详情,请参见JNDI Tutorial