1 回答
TA贡献1772条经验 获得超5个赞
查看您的 LDIF 文件,您似乎正在尝试获取定义为inetOrgPerson的一部分的属性。Spring Security 为这个InetOrgPersonContextMapper
. 这会将定义的属性映射到InetOrgPerson
,这将根据UserDetails
需要进行操作。
要配置您只需要创建一个新实例并将其连接到您的配置。
@SpringBootApplication
public class ApplicationSecurity extends WebSecurityConfigurerAdapter {
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("uid={0},ou=people")
.groupSearchBase("ou=groups")
.contextSource()
.url("ldap://localhost:8389/dc=springframework,dc=org")
.and()
.userDetailsContextMapper(new InetOrgPersonContextMapper())
.passwordCompare()
.passwordEncoder(passwordEncoder())
.passwordAttribute("userPassword");
}
这将相应地映射属性。当您使用 LDAP 时,您不需要UserDetailsService注入,因为它会自动配置LdapUserDetailsService底层。
添加回答
举报