我已经使用Active Directory设置了这样的身份验证:
AuthenticationProvider activeDirectoryAuthenticationProvider(UserDetailsContextMapper userDetailsContextMapper) {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(
"company.local",
"ldap://active-directory-dc:389");
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUserDetailsContextMapper(userDetailsContextMapper);
return provider;
我想使用SwitchUserFilter
来模拟用户。但是,我只能看到方法SwitchUserFilter#setUserDetailsService
来设置身份验证对象,并且无法将AuthenticationProvider
传递给过滤器。另外,我不知道是否可以(以及如何)使用UserDetailsService
进行Active Directory身份验证。
答案 0 :(得分:0)
我通过实现自己的UserDetailsService
(在LDAP中搜索用户名)解决了该问题。另外,也可以使用LdapUserDetailsService
(如果不需要大量自定义)。