首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将自定义凭据传递到spring boot ldap

如何将自定义凭据传递到spring boot ldap
EN

Stack Overflow用户
提问于 2018-06-23 21:31:16
回答 1查看 192关注 0票数 2

我使用了spring-ldap和spring-boot-starter安全的组合。我已经配置了基本设置,但仍然只传递用户名和密码来进行身份验证。它总是尝试验证application.properties中指定的默认凭证。有没有办法通过传递登录表单中给出的证书来正确地做到这一点。

@Override protected void configure(AuthenticationManagerBuilder身份验证)引发异常{

代码语言:javascript
复制
if(Boolean.parseBoolean(ldapEnabled)) {
    auth
            .ldapAuthentication()
            .contextSource()
            .url(ldapUrls + ldapBaseDn)
            .managerDn(ldapSecurityPrincipal)
            .managerPassword(ldapPrincipalPassword)
            .and()
            .userDnPatterns(ldapUserDnPattern);
}

}

代码语言:javascript
复制
ldap.urls= ldap://localhost:10389/
ldap.base.dn= ou=users,dc=example,dc=com
ldap.username= cn=test, ou=users,dc=example,dc=com
ldap.user.dn.pattern = cn={0}


ldap.partitionSuffix=dc=example,dc=com
ldap.partition=example
ldap.principal=uid=admin,ou=system
ldap.password=secret
ldap.port=10389
ldap.url=ldap://localhost:10389/
EN

回答 1

Stack Overflow用户

发布于 2018-06-23 21:52:10

我可以通过创建一个返回用户详细信息上下文映射器的bean来修复这个问题,如下所示。

代码语言:javascript
复制
@Bean
public UserDetailsContextMapper userDetailsContextMapper() {
    return new LdapUserDetailsMapper() {
        @Override
        public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection<? extends GrantedAuthority> authorities) {
            UserDetails details = super.mapUserFromContext(ctx, username, authorities);
            return details;
        }
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51001653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档