认证:
LdapAuthenticationProvider是AuthenticationProvider的ldap认证方式的实现。通过LdapAuthenticator来认证,它有两个实现,分别对应于LDAP的两种认证方式:bind(BindAuthenticator)和password compare(PasswordComparisonAuthenticator)。Spring Security缺省的schema配置使用的是bind认证。如果使用password compare方式认证,需要指定如何获取口令。
授权信息获取:
认证完成通过LdapAuthoritiesPopulator来获取用户权限,它有三个实现。
其中一个是一个空实现,不返回任何权限信息。另外两个实现对应的授权信息的两个来源。如果授权信息从LDAP中获取,则使用DefaultLdapAuthoritiesPopulator,如果用户权限从外部的UserDetailsService中获取,则使用UserDetailsServiceLdapAuthoritiesPopulator。
其中DefaultLdapAuthoritiesPopulator从LDAP中获取的权限前面会添加上前缀,缺省值为"ROLE_"。