具有Active Directory身份验证的Spring SwitchUserFilter

时间:2018-08-30 19:56:09

标签: java spring spring-security active-directory

我已经使用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身份验证。

1 个答案:

答案 0 :(得分:0)

我通过实现自己的UserDetailsService(在LDAP中搜索用户名)解决了该问题。另外,也可以使用LdapUserDetailsService(如果不需要大量自定义)。