如何将用户的主体从userPrincipalName更改为sAMAccountName?

时间:2019-10-09 06:47:39

标签: java spring-boot spring-security

我正在使用带有AD服务器的Spring Security进行身份验证。我的问题是某些用户没有userPrincipalName。因此,我想更改身份验证并使用sAMAccountName和密码进行身份验证。我更改了搜索过滤器,但ActiveDirectoryLdapAuthenticationProvider确实找到了用户,但随后使用登录名中给定的sAMAccountName作为userPrincipalName进行身份验证,然后身份验证失败。 这是我的代码:

public ActiveDirectoryLdapAuthenticationProvider activeDirectoryLdapAuthenticationProvider() {
        ActiveDirectoryLdapAuthenticationProvider activeDirectoryLdapAuthenticationProvider = new ActiveDirectoryLdapAuthenticationProvider(
                "test.test-company.com", "ldap://10.0.0.1:389", "DC=test,DC=test-company,DC=com");
        activeDirectoryLdapAuthenticationProvider.setConvertSubErrorCodesToExceptions(true);
        activeDirectoryLdapAuthenticationProvider.setSearchFilter(
                "(&(objectClass=user)(sAMAccountName={1})(memberOf=CN=Test-Group,OU=Groups,OU=Users Test,DC=test,DC=test-company,DC=com))");
        activeDirectoryLdapAuthenticationProvider.setUseAuthenticationRequestCredentials(true);
        return activeDirectoryLdapAuthenticationProvider;
    }

PS:具有userPrincipalName的用户可以进行身份​​验证。

0 个答案:

没有答案