使用 Acegi 保护 Java 应用程序,第 2 部分: 使用 LDAP 目录服务器
2010-03-18 00:00:00 来源:WEB开发网目前为止,只知道 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。
更多精彩
赞助商链接