CSDN 文档中心:WebLogic Portal 7.0 上开发小结

来源:百度文库 编辑:神马文学网 时间:2024/04/27 16:45:50
WebLogic Portal 7.0 上开发小结作者:徐春好(dev2dev ID: xch)Channel System Enginner∣来源:BEA dev2dev∣原文地址∣2003-3-10最近我们做了一个WebLogiPortal7.0的Demo,本文中我对在这个项目中遇到一些应用问题做了一个技术小结,在此拿出来和大家一块分享。
 
一、 Weblogic Platform Portal 7.0上配置iPlanet LDAP Authenticator
LDAP Authenticator的配置主要是确定WebLogic服务器中的LDAP Authenticator如何与LDAP服务器进行通信以及描述用户与用户组如何保存在LDAP目录中。我在Weblogic Portal 7.0上配置iPlanet LDAP Authenticator的步骤如下:
1、在iPlanet LDAP上的配置
在iPlanet LDAP上必须建立一个用户,它的UID和Password必须和Portal Server的Administrative User的user name 和password一样。具体配置步骤如下:
a 如下图进入Directory页面,在你的domain上选择People(请参考下图,本例中为wlp下的People,wlp是在安装LDAP时设置的suffix):

b 右键点People,添加一个用户如system,它的UID和Password必须和Portal Server的Administrative User的user name 和password一样(本例中为system/password):

c 在People下你也可以建立其他的Group和user。
 
2、在WebLogic Portal7.0上的配置:
与WebLogic Server不同,WebLogic Portal Domain缺省的安全域是CompatibilityRealm,因此我们需要在CompatibilityRealm下进行系列配置。
a 进入CompatibilityRealm->Authenticator点击configure a new Iplanet Authenticator…:

b 输入Name,可以选择control flag

c 填写LDAP Server的host及port。Principal必须是你所建立的用户(即UID和Password和WebLogic Portal Server的Administrative User的user name和password一样的用户)的entrydn。(在本例中为system用户的entrydn)

其他的Users、Groups、Memebership、Detail可以进行相应的配置。通过以上配置LDAP Authenticator与iPlanet LDAP Server就可以通信了。如果你要把用户与用户组的信息保存在LDAP目录中,肯定还有一些工作要作了。另外iPlanet安装完后,在其java目录中提供了一个开发包ldapjdk.jar,它包含了有用的一些API函数,可以用它写程序来操作LDAP,详细信息请参考iPlanet LDAP的相关文档。
 
二、 域的资源调用
在开发中碰到一个现象:我们写了一个portlet,它要调用部署在另一个domain上的EJB,当以everyone登录时,它可以lookup到EJB正常地工作,但当把这个portelt分配给不是everyone的组时,调用时会抛出java.lang.SecurityException。经分析出现这个现象的原因是:Weblogic Server有一个缺省的everyone组,如果用户是everyone这个组的成员,两个域之间的访问是没有问题。在WebLogic Server7.0中两个域之间的访问是需要信任的(这在WebLogic Server6.1上是不需要的),我们需要把两个域的credentials "password"设置成一样的就可以了。

操作步骤如下:
- Click on at the top of the tree view
- Click on the "Security" tab
- Click on the "Advanced" tab
- CLick on the "Change..." link next to "Credential"
- Set you password
Repeat on the other server
 
三、 Portal与Domino的集成
WebLogic Portal与Domino的集成你可以如下两种选择:
1、使用Compoze公司(http://www.compoze.com)预置的portlets来直接集成(好像Compoze对Bea的正式用户是免费的):
你可以在compoze网站注册一个用户,然后上该网站下载一个叫“Harmony Portlets for BEA Weblogic Portal7.0”的包,它里面带有“
 
Harmony for Lotus Domino”模块。
注册后它会通过email发给你一个Evaluation的license。安装成功后,剩下的就只需要在Domino和WebLogic Portal上进行一些简单的配置了,具体过程请参考compoze的说明文档(在安装后的…\harmony_portlets_bea-7.0\docs下的pdf文件)上有详细的说明。
在”Harmony for Lotus Domino”3.0的版本中,对双字节的支持有问题,中文显示为乱码。为了显示正确,需要修改compose的程序。在2003年1月23日compose公司新推出了Harmony for Lotus Domino”3.1的版本,应该增强了对双字节的支持,不过我没有做过测试。
 
2、可以使用lotus提供的Toolkit自己做它们的集成。
Toolkit是Lotus自己提供的Java API,它是通过调用Notes用来操作Domino数据库的,就像Type 2 的 JDBC Driver,所以在运行你的JavaCode的客户机上需要装Notes。Toolkit可以到http://www.lotus.com上去下载。如果你熟悉Domino和BEA portal的开发,可以试试。
四、 在WebLogic Portal Server中使用Jrockit
为了提高运行速度,你可以使用Jrockit:
1、 修改weblogic700\portal\bin\win32\set-environment.bat中的JDK_HOME环境变量为Jrockit(如:set JDK_HOME=f:\jrockit\jre\1.3.1);
2、 将weblogic700\portal\bin\win32\startWeblogic.cmd中的if "%JAVA_VM%"=="" set JAVA_VM=-hotspot注释掉;
3、 将portalDomain\startPortal.bat中的set MEM_ARGS=-Xms128 -Xmx128m -XX:MaxPermSize=128注释掉。
 
五、 SSO(单点登录)的实现
1、 使用第三方产品:
WebLogic Portal可以使用第三方的具有单点登录功能的安全产品。如:Netegrity公司的产品:SiteMinder,它是基于目录的门户管理系统,由两部分组成,SiteMinder Policy Server 和SiteMinder Agents。Policy Server向基于网络的应用提供了政策管理,鉴定,授权和会计服务。SiteMinder Agents 包括Web Agent, Affiliate Agents和Application Server Agents。Web Agent 和标准的网页服务器相整合,使SiteMinder可以根据定义好的安全政策管理对网页及其内容的访问。Affiliate Agent 在相关站点的网络服务器上运行并提供单一登录,向相关站点的用户提供个性化内容。Application Server Agent和应用服务器的HTTP 服务器相联系,以保护Java 2 platform,Enterprise Edition(J2EE)等组件。SiteMinder通过一系列不同的机制管理每个用户的认证。一旦认证完成,SiteMinder即为该用户生成一个Strongly Encrypted SSO 单据 (cookie)。这个cookie本身并不含有任何密码、信用信息或用户信息等。当该用户访问另一台Web服务器或另一个域的应用时,SiteMinder使用这些信息,而不用对用户进行再次认证。SiteMinder还 提供了SAFE (Secure Access For Enterprises),即一整套使开发人员能够轻松地扩展并与SiteMinder功能进行集成的工具、API和文档。
 
2、 自己开发实现
WebLogic Server7.0支持很多的安全协议和标准,提供了安全域的集成机制。你还可以对WebLogic Portal进行一些二次开发。当然要实现SSO还有很多工作要做了。
 
六、 几个版本的小结:
1、WebLogic Portal7.0.0.1:在无网络连接情况下做Hot Deploy操作时会失败,可以采用手工Deploy:(其原因是部署描述文件中使用的DTD找不到)
操作步骤可参考如下文件:
http://edocs.bea.com/wlp/docs70/dev/deploy.htm#998197
 
2、WebLogic Integration 7.0 SP1(WLI 7.0 SP1)在中文环境下运行wliconfig.cmd会抛出:java.util.MissingResourceException异常,这是因为WLI采用当前JVM默认的区域设置,如果我们使用的是中文Windows操作系统,返回的Local是zh_CN,而WLI中并没有提供zh_CN的资源属性文件,所以会抛出上述异常。一个解决方案是修改wliconfig.cmd,为虚拟机追加language和region系统属性;把7.0sp1上的wliconfig.jar用7.0.0.1或7.0sp2上wliconfig.jar替换掉也可以。
 
3、 WebLogic7.0 SP1对双字节的支持比之前的版本增强了很多。
 
由于时间仓促,本文肯定存在许多不足之处,对此还望读者不吝指正。
作者的其他文章
其他相关文章Without Policy, "Security" Isn‘t Really Secure @ JDJ
_xyz