我们知道LDAP Server中能够 存储数据,但我们怎么能够看到LDAP Server中存储了哪些内容呢?答案有2个,一个是使用LDAP Brower,另一个是自己写代码。我们这篇笔记只介绍怎样使用LDAP Brower来查看LDAP Server中的内容。
LDAP客户端有很多种,BEA的文档中就提到一种,但我感觉不如我推荐的这个的界面顺眼,下面向你推荐一个好用的 开源LDAP Brower:JXPlorer,目前版本是3.0。 下载网站: http://pegacat.com/jxplorer/。
我们马上开始连接WebLogic的内置LDAP Server吧!
一.修改Admin的密码。
在开始连接之前,我们要修改WebLogic的内置LDAP Server的Admin的密码。修改方法如下。
1.打开控制台,点击控制台左边的Security,然后选择Embedded LDAP(内置LDAP)。
2.修改密码:修改Credential:的值为:88888888,在ConfiRM Credential:中再输入一遍。
3.单击下方的“Apply”按钮。
我们的Admin的密码就修改成功了。
二.使用Jxplorer浏览LDAP的内容
1. 打开Jxplorer。
启动Jxplorer的命令是jxplorer.bat,在Jxplorer的目录中可以找到这个文件。双击即可。界面如下。
2. 单击左上角的第一个按钮,配置LDAP的连接参数。请按照图中的参数值配置。
Host:输入WebLogic Server所在的机器的IP地址或机器名,如果在本机,可以不用更改,默认“localhost”。
Port:不要修改。一般的LDAP的端口是389,但Weblogic的是7001,这可以从BEA的WLS的帮助上找到。这让我费了很大劲才找到原因。
Protocol:不要改动,LDAP v3是最后的协议版本,也是最高级的版本。
Base DN:dc=XX,XX是你的WLS所在的域的域名,如果你是默认安装的,那么应该是mydomain。
Security部分的Level:我们选择User+Password。当然也可以匿名登录,但你的权限就降低了。
User DN:cn=Admin。WLS的cn(Common Name)的默认的用户是Admin。
Password:输入88888888。
单击OK。
3. 如果你的配置参数没有错误的话,那么你会看到下面的画面。
4. 单击右边的“Table Editor”。你会看到当前对象的所有属性及属性值。
至此,你已经成功的连接到了WLS的内置的LDAP上了。
三.修改、添加属性
看到了这些属性,你可能希望修改一些值,或者有些属性这里面没有,下面我们来实现这个需求。
1.首先我们应该找到前面提到的WLS中的控制用户权限的acls.prop文件。这个文件在X:beaweblogic81serverlib下面,X:为你的安装盘符。打开它。
上面的注释说的是默认的情况下只允许Admin用户访问,并且只有读的权限。如果希望能够进行其他的操作,请参照我的第10篇笔记写控制规则。在这篇笔记里,我们并不想实现非常精细的权限控制,我们只要将选中的部分和最后两行的前面的“#”去掉保存就可以了。
保存后,重新启动WLS。
2.下面我们添加一个用户。在People上点击右键,在弹出菜单中选择“New”。
3.在弹出的界面上的“Enter RND”中输入“uid=zj”。“zj”是我随便起的名字,并没有特殊意义。其他项不变,单击“OK”。
为对象添加自定义属性时也需要改变“selected Classes”,后面再说。
5. 单击界面的右边的“Submit”按钮。出现错误提示。
6. 这是因为有些属性没有默认值,但又不允许为空,所以操作没有成功。
7. 我们修改哪些必填的属性。你可能会问,哪些属性必填呢?这个问题我们过会儿讨论,现在我给所有的属性都赋值(当然这是不必要的,但为了简单,我们这里先这样做)。保存。保存成功,界面如下。
8. 此时我么你可以修改任何一个属性的值,然后单击“submit”保存。当然我们更改后的值应该是合法的(长度、数据类型等都要合法)。
至此,我们完成了修改对象的属性的说明。
四.添加自定义属性
为了迎合我们的项目的需要,添加自定义属性是不可避免的,但我们在添加自定义属性前首先要查一下LDAP的规范,看看里面是否已经有了我们要添加的属性的名字,比如“userPassword”,在LDAP已经公布的规范中已经定义了,所以你如果在自己的对象中添加这个属性是不正确的。你可以到http://www.ldapman.org/schema-references/ 上查找你要添加的属性名是否在规范中的Schema中定义了。
Schema是定义了目录服务器中包含的对象的定义文件(这是我的总结,当然你可以到www.ldapman.org上看上面的几篇LDAP的入门文章,那里面有比较详细的介绍)。
我们打开WLS中的Schema文件看看。WLS中的Schema文件名为Schema.core.xml,位置为X:beaweblogic81serverlib,X:为你安装的WLS的盘符。如图。
在这里我不想讲解Schema的语法结构(你可以阅读相关的LDAP的规范,这些规范都可以在)www.ldapman.org上找到。
在这里我们复制一段,稍加修改就可以了。
1.复制选中的文字。
2.粘贴到选中的文字的下方,并将id和name的值都修改为mylove(这是我喜欢的一首英文歌的名字)。将dsml:object-identifier的值去掉,添加一个新属性iknowiloveyou(这是我喜欢的另一首英文歌的名字^_^),注意后面的required=true的意思是这是个必填的属性。修改后如下:
<dsml:class
id="mylove"
type="structural"
superior="#top">
<dsml:name>mylove</dsml:name>
<dsml:description>ltf's test</dsml:description>
<dsml:object-identifier></dsml:object-identifier>
<dsml:attribute ref="#iknowiloveyou" required="true"/>
<dsml:attribute ref="#peoplename" required="false"/>
<dsml:attribute ref="#peoplepassword" required="false"/>
<dsml:attribute ref="#description" required="false"/>
</dsml:class>
保存。重新启动WLS。
3.启动Jxplorer,为用户zj添加子入口(Entry)。我们选择将子入口添加到RDN(相对DN)sn(surname,参见LDAP的规范)的下面。
我们在zj的上面点击右键。
在弹出菜单上选择“New”。弹出界面如下。
单击“OK”,保存成功,注意这里面有些类是必须的,如top。
4.我们再展开zj看看。发现下面多了一个子入口。选择子入口li,属性显示在右边属性栏。
至此,我们这篇笔记也结束了。
这篇笔记记录的内容虽然简单,但却是我查了一周的英文资料,读了几十篇英文文章,才弄出来的,希望对大家有用。你可以参照这篇笔记的做法,添加自己的对象。
这篇笔记没有介绍LDAP的术语及意义,如果想详细了解LDAP的术语及意义,请www.ldapman.org上的规范,嘿嘿,是多了些,但可以提高E文水平!我只看了关于Schema的几篇,你也遭遭这份洋罪吧!我想起《沙僧日记》中的一段:
锈逗1年2月25日
我们终于登上了心驰神往的天山!
天池象一位美丽纯洁的少女晕到在天山顶上。湖水幽蓝,倒映着蔚蓝的天空和洁白的云彩。是那么的恬静,那么的清澈。
我们在湖边大喊:“喂……!有……人……吗……?”听到湖对面传来我们的回声:“喂……有……四个……傻……鸟……!”
二师兄情不自禁,跳入湖中,游起泳来。他跳下去后,师傅笑道:“哈哈,这个痴人!天池中的水是天山上的冰雪水汇聚而来,常年冰冷刺骨,他竟然问都不问就跳了下去!”
却见二师兄神情自若地游着,师傅问他:“不凉吗?”
二师兄表情自然,并无半点痛苦之色。说:“太舒爽了!太惬意了!一点都不冷!好象夏为夷的海水!不信你下来试试?”
师傅立即换上高叉泳衣,跳入湖中。
二师兄这时却一下爬上岸来,马上打起了哆嗦……:“呀呦!太冷了!我快不行啦!差点没冻死!……还好,我演技高拖一个下去……否则就我一个下水挨冻,岂不没有面子!”
师傅大概也是这么想的,在水里嘴唇发青,浑身颤抖,还一个劲儿在喊:“快!……快……快下来爽一下!真……真是太消魂了!”
我们没有理他,都去采花编花篮去了。
好了,如果时间允许的话,我下一篇笔记是总结怎样通过JNDI来操作LDAP的。我还有struts的笔记还没有写完呢,哈哈!