兔八哥笔记11:怎样连接到WebLogic的内置LDAP上? 
  
       我们知道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:\bea\weblogic81\server\lib下面,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:\bea\weblogic81\server\lib,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的笔记还没有写完呢,哈哈! 
  
  
  
  
                                                         兔八哥 
                                              2003年12月2日星期二 20:00  
 
  |