使用spring ldap操作OpenDJ3.0(三)

一、首先要说下遇到的问题

问题一来自于OpenDJ,在安装OpenDJ3.0的第五步里面,图中红圈标记的地方,对于初次接触LDAP服务器的人来说,这里真的是一个概念巨坑。

记住这个选项“Leave Database Empty”

25104221_x4JM.jpg

因为这个配置,导致我后面进入Manage Entries面板看不到dc=qthings,dc=com这个域。由于安装过程不再演示,但这个创建过程和下图创建是一个道理。


25104222_q0ea.jpg

建好之后,进入到Manage Entries面板,可以看到,Base DN的下拉框有这个DN,但是下面左边栏没有相应的内容

25104223_X5R4.jpg


选进来后显示没有任何东西,这是使用Entries下拉框中的“New from LDIF...”是没有办法新建objectclass: person的entry的。

25104223_oG1C.jpg


直到我选择Only Create Base Entry选项创建了Base DN后,我才终于看到了什么叫Base Entry。

25104223_K2hM.jpg

原来就是要在dc=qthings,dc=com的DN下创建一个objectclass: domain的entry就可以了。


这里耗费我不少时间,所以建议创建Base DN时直接选择Only Create Base Entry选项,避免绕弯路。


二、建立基于spring ldap框架的项目


【1】使用的maven配置pom.xml内对于ldap需要使用的依赖)

25104224_9xBC.jpg


【2】实体类注解说明

java实体类部分截图,对应于LDAP的内容

25104224_gvPZ.jpg

这里主要做下注解的解释,spring官网也有相应的描述。

@Entry

这个注解里面含有两个属性:objectClass和base

objectClass即OpenDJ中出现的objectclass,这是一个数组。而base即Base DN

25104224_ASvQ.jpg

base这个属性也可以配置在spring-ldap.xml中,这样实体类中就不需要写这个属性了,注意的是不能同时配置,会出问题:在创建这个实体entry时,dn中会出现两次dc=a,dc=com

110148_jhEM_1256160.png

@Id

This annotation marks a Java field as containing the Distinguished Name of an LDAP Entry.
The marked field must be of type {@link javax.naming.Name} and must not
be annotated {@link Attribute}.

这个都标注在Name上,很像数据库表中的主键意思,唯一性(本来就是差不多意思)

@Transient

This annotation identifies a field in an {@link Entry} annotated class that 
should not be persisted to LDAP.

不会被持久化的字段


@Attribute和@DnAttribute

这里着重说区别,@DnAttribute有两个属性value和index,这里是指下图标出的部分

25104225_jb2q.jpg


其中value指cn=wanda中的“cn”而index表示在dn中的位置。

@Attribute有3个属性name、type、syntax,其中name最容易理解——属性名,type默认是String的,还可以是byte[]。

至于syntax(语法),没用过,有spring的注释:

25104225_56ox.jpg

【3】DAO内部使用

25104225_GMua.jpg

这里只放了一个插入的写法,其他的写法spring官网都有提供,配置文件上面已经贴过了。


更多spring的实例参考:https://github.com/spring-projects/spring-ldap/tree/master/samples/odm


转载于:https://my.oschina.net/qingzhukl/blog/647077

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值