目录和 LDAP 软件包

Directory Package

javax.naming.directory包扩展了javax.naming包,以提供除命名服务之外的用于访问目录服务的功能。此程序包允许应用程序检索与目录中存储的对象相关联,并使用指定的属性搜索对象。

目录上下文

DirContextinterface表示目录上下文DirContext还可以通过扩展Contextinterface充当命名上下文。这意味着任何目录对象都可以提供命名上下文。它定义了检查和更新与目录条目关联的属性的方法。

  • Attributes

    • 您使用getAttributes()方法来检索与目录条目(为其提供名称)关联的属性。使用modifyAttributes()方法修改属性。您可以使用此操作添加,替换或删除属性和/或属性值。
  • Searches

    • DirContext包含用于执行基于内容的目录搜索的方法。在最简单,最常见的用法中,应用程序指定一组可能具有特定值的属性以进行匹配,并将此属性集提交给search()方法。其他search()的重载形式支持更复杂的搜索过滤器。

LDAP Package

javax.naming.ldap软件包包含用于使用特定于LDAP v3的功能的类和interface,而通用javax.naming.directory软件包尚未涵盖这些功能。实际上,大多数使用 LDAP 的 JNDI 应用程序都可以找到javax.naming.directory软件包,并且根本不需要使用javax\.naming\.ldap软件包。该软件包主要用于那些需要使用“扩展”操作,控件或未经请求的通知的应用程序。

  • "Extended" Operation

    • LDAP v3(RFC 2251)除了指定诸如搜索和修改之类的定义明确的操作外,还指定一种在 LDAPClient 端和服务器之间传输尚未定义的操作的方式。这些操作称为*“扩展”操作*。 “扩展”操作可以由标准组织(例如 Internet 工程任务组(IETF))或卖方来定义。
  • Controls

    • LDAP v3允许任何尚未定义的修饰符(称为* controls )增强任何请求或响应。与请求一起发送的控件是 request 控件*,而与响应一起发送的控件是* response 控件*。控件可由 IETF 等标准组织或卖方定义。请求控件和响应控件不一定成对,也就是说,每个发送的请求控件都不需要响应控件,反之亦然。
  • Unsolicited Notifications

    • 除了 Client 端与服务器之间的正常请求/响应交互方式之外,LDAP v3还指定未经请求的通知-从服务器异步发送到 Client 端的消息,而不是响应任何 Client 端请求的消息。

LDAP 上下文

LdapContextinterface表示上下文,用于执行“扩展”操作,发送请求控件和接收响应控件。 JNDI 教程的控件和扩展类中介绍了如何使用这些功能的示例。