spring-ldap如何绕过OpenLDAP"独特"覆盖?我怎么阻止它这样做?

时间:2015-01-08 01:38:02

标签: java spring ldap openldap spring-ldap

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

这应该发生,或者我的某个环境有什么问题吗?如果它应该发生,我如何让spring-ldap停止超越唯一性约束?

2 个答案:

答案 0 :(得分:0)

这可能是由于OpenLDAP的一个已知问题,如果Spring在添加条目时没有明确添加RDN属性:

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

答案 1 :(得分:0)

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

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

import turtle

# SET UP WINDOW
wn = turtle.Screen()
wn.bgcolor('black')
wn.title("x")
wn.setup(width=800, height=800)
wn.setworldcoordinates(-470, -400, 330, 400)  # 70 pixel shift
wn.bgpic("spacebg.png")

# DRAW GAME BORDER
border_pen = turtle.Turtle()
border_pen.speed('fastest')
border_pen.color('white')
border_pen.pensize(3)

border_pen.penup()
border_pen.setposition(-300, -300)
border_pen.pendown()

for side in range(4):
    border_pen.fd(600)
    border_pen.lt(90)

border_pen.hideturtle()

wn.mainloop()

使用spring boot服务时,您可以设置:

java.naming.referral=throw