使用Acegi保护Java应用程序,第2部分: 使用LDAP目录服务器 - 编程入门网
ue>ou</value>
</property>
<property name="searchSubtree">
<value>true</value>
</property>
</bean>
在清单 7 中,populator bean 的构造函数包括 2 个参数,以及一个 groupRoleAttribute 属性。构造函数的第一个参数指定了 populator bean 用 来读取经过验证用户的业务角色的初始上下文。并不强制要求 authenticator 和 populator bean 使用相同的初始上下文。您可以为这两者分别配置一个初始 上下文。 第二个构造函数参数指定了 populator 前加到初始上下文的 RDN。因此, RDN 组成了包含组用户的节点的 DN,例如 departments 节点。 populator bean 的 groupRoleAttribute 属性指定了持有组成员业务角色数 据的属性。回想 设置 LDAP 目录 一节中,您将每组用户的业务角色信息存储在 名为 ou 的属性中。然后将 ou 设置为 groupRoleAttribute 属性的值,如 清 单 7 所示。 如您所料,populator bean 将搜索整个 LDAP 目录来查找经过验证的用户所 属的组节点。然后读取组节点的 ou 属性的值,获取用户经过授权的业务角色。 这样就完成了 populator bean 的配置。目前为止,我们在三个位置使用了 初始上下文:清单 5、清单 6 和 清单 7。接下来将了解如何配置初始上下文。 配置初始上下文 清单 8 展示了在 Acegi 中配置初始上下文的过程: 清单 8. 初始上下文的 XML 配置
清单 8 中 Acegi 的初始上下文类的名称为 org.acegisecurity.ldap.DefaultInitialDirContextFactory,这是 Acegi 包 含的工厂类。Acegi 在内部使用该类构造其他处理目录操作(例如在整个目录中 搜索)的类的对象。当配置初始上下文工厂时,必须指定以下内容: 将您的 LDAP 目录和根目录节点的网络地址指定为构造函数的参数。在初始 上下文配置的节点将作为根节点。就是说所有后续操作(例如 search)都将在 根节点定义的子树中执行。 将 DN 和密码分别定义为 managerDn 和 managerPassword 属性。在执行任 何搜索操作之前,Acegi 必须使用目录服务器对 DN 和密码进行身份验证。 您已经了解了如何将用户库托管在 LDAP 目录中,以及如何配置 Acegi 来使 用来自 LDAP 目录的信息对用户进行身份验证。下一节将进一步介绍 Acegi 的 身份验证处理过滤器,了解新配置的 bean 是如何管理身份验证过程的。 使用Acegi保护Java应用程序,第2部分: 使用LDAP目录服务器(9)时间:2011-09-07 ibm Bilal Siddiqui身份验证和授权 APF 配置完成后,将能够与 LDAP 目录进行通信来对用户进行身份验证。如 果您阅读过第 1 部分,那么对与目录通信过程中 APF 执行的一些步骤不会感到 陌生,我在第 1 部分中向您展示了过滤器如何使用不同的服务进行用户身份验 证。图 5 所示的序列表与您在 第 1 部分图 3 看到的非常类似: 图 5. APF 对一名 LDAP 用户进行身份验证 无论 APF 使用属性文件进行内部的身份验证还是与 LDAP 服务器进行通信, 步骤 1 到步骤 9 与第 1 部分是相同的。这里简单描述了前 9 个步骤,您可以 从步骤 10 开始继续学习特定于 LDAP 的事件: 过滤器链前面的过滤 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |