LdapConnection
LDAP 的全称是 Lightweight Directory Access Protocol,「轻量目录访问协议」,约定了 Client 与 Server 之间的信息交互格式、使用的端口号、认证方式等内容。
首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active Directory)是微软出的一套实现。像是其他数据库一样,LDAP也是有client端和server端。server端是用来存放资源,client端用来操作增删改查等操作。而我们通常说的LDAP是指运行这个数据库的服务器。可以简单理解AD =LDAP服务器+LDAP应用。
连接公共配置
在commons.xml中进行配置。定义需要使用的connection,提供主配置引用。
connection属性配置
定义ldap类型的连接示例,指定ldap连接实现代码类。
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
id | 标识 | string | 能表达通道含义的名字如ldapConnection |
class | 实例 | string | com.brilliance.eibs.core.service.instance.impl.LdapConnection。 |
pooled | 是否连接池 | boolean | 默认为false,判断是否需要提供连接池属性 |
property属性配置
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
Name | 标识 | string | ldap连接建立所需参数 |
value | 值 | string | 当前字段的值; |
encrypt | 加密 | string | BASE64、AES、DES(默认)、DESede、IDEA、PBE、RSA |
接口配置实现
connection配置
主要用于定义交互协议类型,定义数据接入输出的连接方式。特别说明step下的connection属于引用类型,配置与声明定义时的connection略有不同。
属性配置。
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
ref | 引用 | string | 引用已经定义好的ldapconnection对象 |
type | 数据流向 | string | In(表输入)、out(表输出) |
encoding | 字符集 | string | Utf-8 |
property配置
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
Name | 标识 | string | ldap连接参数 |
value | 值 | string | 当前字段的值; |
ldap连接配置property
属性 | 描述 | 值类型 | 示例 |
---|---|---|---|
url | ldap服务地址 | string | ldap://localhost:389 |
dn | 连接的DN | string | cn=Manager,dc=cctv,dc=com |
password | 密码 | string | secret |
searchdn | string | ${this[0]} | |
return_attrs | null/all/a,b,c ,可不配,默认为all | string | all |
searchfilter | 可不配,默认为(objectClass=*) | string | (objectClass=*) |
searchscope | 可不配,默认为ONELEVEL_SCOPE | string | #{SUBTREE_SCOPE} |
示例
<connection ref="ldapConnection">
<property name="url" value="ldap://localhost:389" /><!-- ldap服务地址 -->
<property name="dn" value="cn=Manager,dc=cctv,dc=com" /><!-- 连接的DN -->
<property name="xpassword" value="p0GEuSjkYF4=" /><!-- 密码 -->
<!-- <property name="password" value="secret" />明文密码 -->
<property name="searchdn" value="${this[0]}" />
<property name="return_attrs" value="all" /><!-- null/all/a,b,c ,可不配,默认为all -->
<property name="searchfilter" value="(objectClass=*)" /><!-- 可不配,默认为(objectClass=*) -->
<property name="searchscope" value="#{SUBTREE_SCOPE}" /><!-- 可不配,默认为ONELEVEL_SCOPE -->
</connection>
最后总结一下LDAP: 1、LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了。 2、LDAP可以很快地得到查询结果,不过在写方面,就慢得多。 3、LDAP提供了静态数据的快速查询方式。 4、Client/server模型,Server 用于存储数据,Client提供操作目录信息树的工具。 5、LDAP是一种开放Internet标准,LDAP协议是跨平台的Interent协议。