LDAP在它自己的章节中有详细介绍。我们将在这里进一步解释命名空间选项如何映射到Spring beans。LDAP实现广泛使用了Spring LDAP,所以熟悉一下该项目的应用编程接口可能会有所帮助。
41.5.1 Defining the LDAP Server using the使用定义LDAP服务器
< ldap-server>元素,此元素设置一个供其他LDAP beans使用的Spring LDAP上下文源,定义LDAP服务器的位置和连接到它的其他信息(如用户名和密码,如果它不允许匿名访问)。它也可以用来创建一个嵌入式服务器进行测试。这两个选项的语法细节将在“LDAP”一章中介绍。实际的上下文源
ContextSource
实现是DefaultSpringsecurityContextSource,它扩展了Spring LDAP的LdapContextSource
。管理器Dn和管理器密码属性分别映射到后者的用户dn和密码属性。如果您的应用程序上下文中只定义了一个服务器,其他LDAP命名空间定义的beans将自动使用它。否则,您可以给元素一个“id”属性,并使用server-ref属性从其他名称空间beans引用它。这实际上是ContextSource实例的bean id,如果您想在其他传统的Spring beans中使用它的话。
<ldap-server> Attributes
41.5.2 <ldap-authentication-provider> LDAP-身份验证-提供商
这个元素是创建LdapAuthenticationProvider实例的简写。默认情况下,这将配置一个绑定验证器
BindAuthenticator
实例和一个默认验证器填充器DefaultAuthoritiesPopulator。与所有命名空间身份验证提供程序一样,它必须作为身份验证提供程序authentication-provider元素的子元素包含在内。<ldap-authentication-provider> Attributes
- group-role-attribute 包含将在spring安全中使用的角色名称的LDAP属性名称。映射到默认的DefaultLdapAuthoritiesPopulator组角色属性groupRoleAttribute 。默认为“cn”。
- group-search-base 成员搜索的搜索基础。映射到默认的组搜索基础DefaultLdapAuthoritiesPopulator's groupSearchBase 构造函数参数。默认为" "(从根目录搜索)。
- group-search-filter 群组搜索过滤器。映射到默认的组搜索过滤器DefaultLdapAuthoritiesPopulator's groupSearchFilter 属性。默认为(uniqueMember={0})。替代参数是用户的域名。
- role-prefix 一个非空的字符串前缀,它将被添加到从持久性加载的角色字符串中。映射到DefaultLdapAuthoritiesPopulator填充程序的角色前缀rolePrefix属性。默认为“ROLE_”。在默认值为非空的情况下,使用值“none”表示没有前缀。
- user-dn-pattern 如果您的用户位于目录中的固定位置(即,您可以直接从用户名计算出域名,而无需进行目录搜索),您可以使用此属性直接映射到域名。它直接映射到抽象身份验证器的用户模式属性。该值是用于构建用户的DN的特定模式,例如“uid={0},ou =人员”。密钥“{0}”必须存在,并将被用户名替换。
Child Elements of <ldap-authentication-provider>
41.5.3 <password-compare>
被用作< ldap-provider >的子元素,并将身份验证策略从绑定身份验证器BindAuthenticator 切换到密码比较身份验证器PasswordComparisonAuthenticator。
<password-compare> Attributes
Child Elements of <password-compare>
41.5.4 <ldap-user-service>
此元素配置一个LDAP用户详细信息服务。所用的类是LdapUserDetailsService,它是一个FilterBasedLdapUserSearch和一个DefaultLdapAuthoritiesPopulator填充器的组合。它支持的属性与< ldap-provider >中的属性用法相同。
<ldap-user-service> Attributes
- cache-ref 定义对缓存的引用,供用户详细信息服务使用。