我正在嘗試通過 spring ldap 對(duì)用戶進(jìn)行身份驗(yàn)證。以下是初始化 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();當(dāng)我嘗試使用 ldapTemplate 身份驗(yàn)證方法時(shí),它返回 false。// below line failsldapTemplate.authenticate("OU=Service Accounts,OU=Pseudo-Users", "frontend-web", "password");但是當(dāng)我使用目錄上下文時(shí)它可以工作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:無(wú)論如何要使 ldaptemplate 身份驗(yàn)證方法起作用嗎?問題二:直接使用DirectoryContext時(shí)為什么不用提供baseDn。ldap 如何知道在哪里可以找到用戶“frontend-web”。它是否在整個(gè)目錄中搜索用戶“frontend-web”任何人都可以幫忙。
添加回答
舉報(bào)
0/150
提交
取消