为了账号安全,请及时绑定邮箱和手机立即绑定

spring LDAP模板认证

spring LDAP模板认证

大话西游666 2021-09-03 15:41:23
我正在尝试通过 spring ldap 对用户进行身份验证。以下是初始化 ldap 模板的代码。contextSource = new LdapContextSource();contextSource.setUrl("ldaps://ldap.example.com");contextSource.setBase("DC=example,DC=com");contextSource.setUserDn("backend-app");contextSource.setPassword("password");contextSource.afterPropertiesSet();PoolingContextSource pooledContextSource = new PoolingContextSource(); pooledContextSource.setDirContextValidator(new DefaultDirContextValidator());pooledContextSource.setContextSource(contextSource);ldapTemplate =  new LdapTemplate(pooledContextSource); ldapTemplate.afterPropertiesSet();当我尝试使用 ldapTemplate 身份验证方法时,它返回 false。// below line failsldapTemplate.authenticate("OU=Service Accounts,OU=Pseudo-Users", "frontend-web", "password");但是当我使用目录上下文时它可以工作DirContext ctx = null;try {  ctx = contextSource.getContext("frontend-web", "password");  return true;} catch (Exception e) {  logger.error("Login failed", e);  return false;} finally {  LdapUtils.closeContext(ctx);  }问题 1:无论如何要使 ldaptemplate 身份验证方法起作用吗?问题二:直接使用DirectoryContext时为什么不用提供baseDn。ldap 如何知道在哪里可以找到用户“frontend-web”。它是否在整个目录中搜索用户“frontend-web”任何人都可以帮忙。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 542 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信