我正在使用带有LDAP的Spring Security。 由于公司政策,应该可以使用用户名的四种不同变体登录,所有这些变体都包含用户ID:xxID,ID,xxID @organization.com和ID@organization.com。
我正在验证: .userSearchFilter( “(及(objectClass的=人)(UID = {0}))”) 其中uid应为xxID。是否可以预处理用户名,以便所有变体都可以使用(同时仍然使用ldapauthentication())?
我的整个身份验证配置是:
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.ldapAuthoritiesPopulator((userData, username) -> {
..get authorities from database
})
.userSearchFilter("(&(objectClass=person)(uid={0}))")
.contextSource().url(env.getProperty("spring.ldap.urls", String[].class)[0]);
}
最佳