快速业务通道

使用Acegi保护Java应用程序,第2部分: 使用LDAP目录服务器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
cegi保护Java应用程序,第2部分: 使用LDAP目录服务器(6) 时间:2011-09-07 ibm Bilal Siddiqui

配置 authenticator bean,如清单 5 所示:

清单 5. 配置验证器 bean

<bean id="authenticator" class="org.acegisecurity.providers.ldap.authenticator.BindAuthenticato r"> <constructor-arg><ref  local="initialDirContextFactory"/></constructor-arg> <property name="userDnPatterns"> <list> <value>uid={0},ou=employees,ou=partners</value> <value>uid={0},ou=customers,ou=partners</value> <value>uid={0},ou=suppliers,ou=partners</value> </list> </property> <property name="userSearch"><ref  local="userSearch"/></property> </bean>

在清单 5 中,BindAuthenticator 构造函数具有一个参数,使用 <constructor-arg> 标记的形式。清单 5 中参数的名称为 initialDirContextFactory。该参数实际上是另一个 bean,稍后您将学习如何 配置该 bean。

目前为止,只知道 initialDirContextFactory bean 的作用就是为稍后的搜 索操作指定初始上下文。初始上下文是一个 DN,它指定了 LDAP 目录内某个节 点。指定初始上下文后,将在该节点的子节点中执行所有的搜索操作(例如查找 特定用户)。

例如,回到 图 2 中查看 partners 节点,它的 DN 是 ou=partners,o=manufacturingEnterprise,dc=org。如果将 partners 节点指定 为初始上下文,Acegi 将只在 partners 节点的子节点中查找用户。

指定 DN 模式

除配置 BindAuthenticator 构造函数外,还必须配置 authenticator bean 的两个属性(清单 5 中的两个 <property> 标记)。

第一个 <property> 标记定义了一个 userDnPatterns 属性,它封装 了一个或多个 DN 模式列表。DN 模式 指定了一组具有类似特性的 LDAP 节点( 例如 图 2 所示的 employees 节点的所有子节点)。

Acegi 的身份验证器从 authenticator bean 的 userDnPatterns 属性中配 置的每个 DN 模式构造了一个 DN。例如,查看 清单 5 中配置的第一个模式, 即 uid={0},ou=employees,ou=partners。在进行身份验证的时候, authenticator bean 使用用户提供的用户名(比如 alice)替换了 {0}。使用 用户名取代了 {0} 之后,DN 模式将变为相对 DN(RDN) uid=alice,ou=employees,ou=partners,它需要一个初始上下文才能成为 DN。

例如,查看 图 2 中的 alice''s 条目。该条目是 employees 节点的第一个 子节点。它的 DN 是 uid=alice,ou=employees,ou=partners,o=manufacturingEnterprise, dc=org。 如果使用 o=manufacturingEnterprise,dc=org 作为初始上下文并将其添加到 RDN uid=alice,ou=employees,ou=partners 之后,将获得 alice 的 DN。

使用这种方法通过 DN 模式构建了用户的 DN 后,authenticator 将把 DN 和用户密码发送到 LDAP 目录。目录将检查该 DN 是否具有正确的密码。如果有 的话,用户就可以通过身份验证。这个过程在 LDAP 术语中被称为 bind 身份验 证。LDAP 还提供了其他类型的身份验证机制,但是本文的示例只使用了 bind 身份验证。

如果目录中并没有第一个 DN 模式创建的 DN,authenticator bean 尝试使 用列表中配置的第二个 DN 模式。依此类推,authenticator bean 将尝试所有 的 DN 模式来为进行身份验证的用户构造正确的用户 DN。

使用Acegi保护Java应用程序,第2部分: 使用LDAP目录服务器(7)

时间:2011-09-07 ibm Bilal Siddiqui

搜索过滤器

回想

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号