spring-ldap如何绕过OpenLDAP的“唯一”覆盖?以及如何阻止它执行此操作?

问题描述 投票:0回答:2

我有一个OpenLDAP部署,对某些属性(使用“唯一”覆盖图创建)具有唯一性约束,我已经使用ldapadd对其进行了测试并确认其正常工作。但是,当我使用org.springframework.ldap.core.LdapTemplate的“ bind”方法添加有冲突的条目时,将保存该条目而不进行验证。

这是应该发生的,还是我的环境之一有问题?并且如果应该发生这种情况,我如何获得spring-ldap来停止潜行经过唯一性约束?

java spring ldap openldap spring-ldap
2个回答
0
投票

这可能是由于OpenLDAP的已知问题,如果spring在添加条目时未显式添加RDN属性:

http://www.openldap.org/lists/openldap-bugs/201210/msg00065.html


0
投票

Spring LDAP使用JNDI与LDAP服务器进行通信。默认情况下,JNDI发送ManageDsaIT控件。如果设置,OpenLDAP服务器将忽略唯一的覆盖。

您可以通过设置以下环境变量来禁用此行为:

java.naming.referral=throw

使用Spring Boot服务时,您可以设置:

spring.ldap.base-environment:
  java.naming.referral: "throw"
© www.soinside.com 2019 - 2024. All rights reserved.