Liferay Portal缺省只有一个系统管理员用户test,且以用户的电子邮件地址test@liferay.com为登录用户名,密码是test。
Liferay Portal针对不同的用户会展现出不同的服务网页。当浏览Portal主页网址http://localhost:8080/时,自动转入网址http://localhost:8080/web/guest/home调出面向所有人的Guest社区公共主页。一个注册用户登录系统后,可以选择访问不同类型的Portal主页。这也是Portal同传统网站所不同的地方。
以test用户登录Liferay Portal系统,鼠标移到右上角的“Welcome Test Test!”处调出菜单。再把鼠标移到“我的地方”,可以看到test用户可以访问的Portal类型有“我的公共”,“Test Organization”,“Test Location”和“Guest”,且每一项又分为“公开页”和“私有页”。其中“公开页”是其他人可以访问的网页,“私有页”则仅自己或注册用户且经过授权才可访问。如“我的公共”中的“公开页”可以被所有人访问,而其“私有页”仅用户自己访问。
----
在每个Portal的主页中可以建立若干个网页,每个网页可以定义为不同的类型:Portlet,Panel,Embedded,Article,URL和Link to Page。其中Portlet网页是最常用的一类。在Portlet网页中,可以按照需要布置若干个Portlet插件。每个Portlet插件实现不同的功能,在独立的小窗口中展现内容。
在Portlet窗口的右上角有5个图标,分别用来设置外观,配置功能属性,设置 最小化或最大化显示,或者关闭Portlet窗口。有权限的用户,可以添加、配置或删除Portlet。
--------------
系统的配置是由系统管理员实施的。以test用户登录后,先进入“我的公共”私有页中,删除不需要的Portlet,只保留“语言”Portlet。然后再从菜单中打开“增加应用”工具窗口,在“Admin”分类下,选取添加新的Portlet:“管理者”和“企业Admin”。“管理者”Portlet用来管理Liferay Portal系统,监测系统运行情况,清理系统缓冲区,以及关闭系统等。“企业Admin”则用来设置和管理系统的应用参数,如企业属性,用户,群组,角色,以及认证方式等。
现在我们要对系统的缺省配置进行修改。
一、基本配置
将“企业Admin”Portlet窗口最大化,点击不同的标签进行配置。
1、总体配置
(1)企业属性
点击标签“配置”→“一般”,来设置用户企业资料,修改“名称”,“邮件网域名”,设置“语言”和“时区”,更改本单位的图标。其它参数如“法律身份证”,“SIG名称”,“产业”等等,可以不予理会。
(2)缺省社区
在“缺省用户协会”(社区)中指定新建用户所在的社区和具有的角色。
在“default community names”窗口中输入社区名称,缺省只有一个社区Guest,也可以先建立新的社区。Guest社区供非注册用户访问,如果注册用户也要访问Guest社区网页,则要在此窗口中添加Guest行。
每个注册用户至少要有一个“User”角色。“Power User”角色的用户可以拥有自己的私人网页和公开网页。如果不允许用户建立自己的网页则从default role names窗口中去掉Power User行。
(3)保留字
“后备的屏幕名称”用来建立保留名称,即不允许其他人使用的系统保留名称和邮件地址等。如果你的Portal允许访客自己注册建立帐号的话,最好在此建立一个需要保留的用户名称和邮件地址列表。
(4)用户认证
系统缺省要求用户使用电子邮件地址来登录认证。我们习惯于使用用户名来登录系统,因此在“用户怎么证实”栏选择“由屏幕名称”。“用户识别码”也不方便认证,因为“用户识别码”(userid)是系统自动生成的唯一码,用户也不便记忆。
另外,可以设置是否允许客人自己建立新账号以及他们的邮件地址等。
2、配置使用者、组织、用户群、角色
(1)使用者
在“使用者”标签下管理注册用户,可以修改用户资料,设置权限,配置主页等。先把test用户名修改为便于记忆的名称“admin”,姓名改为“系统管理员”,电子邮件地址改为admin@zhongshan.pbc,问候语改为“系统管理员”。把“组织”栏选项“Test Location”去掉不选。然后设置新的用户密码。至于其它内容,可以根据自己的需要进行设置。
如果不允许客人注册用户帐号,就需要系统管理员来逐个建立新用户了。对于人员较多的单位来说,手工建立用户资料的工作量是非常巨大的。因此,最好的办法是编写一个程序,把人员资料按格式自动加入到Liferay的数据库中。但要注意,用户资料是保存在多个表里面的,其中涉及的数据库表主要有:user_,users_usergroups,users_roles,users_permissions,users_orgs,users_groups,usergrouprole,usergroup,contact_。(2)组织
“组织”指用户所属的机构组织。Liferay Portal能够适应于跨区域的大型企业应用,因此可以定义一个企业在各个地区的各个分支机构。在我们的应用中,仅有一个机构组织,所以把不需要的地域组织名“Test Location”删除掉,保留“Test Organization”进行修改使用:把名称修改为“中国人民银行中山市中心支行”,所在国家为“China”。
在这里还可以给组织分配用户,设置权限,定义组织专有的公开网页和私有网页等等。
(3)用户群
“用户群”即对用户进行分类,以方便按类别管理用户,特别在进行访问控制配置中,可以按用户群来集体授权而不是对各个用户逐一授权。
但在Liferay Portal中,用户群的使用并不方便。比如,只能在用户群管理中给用户群分配用户,而不能在用户管理中给用户指定用户群。这样的话,用户不知道自己属于哪些用户群中,管理员也不能从用户管理界面上直接查询到用户所属的用户群,而只能从各个用户群中检查某个用户是否在该群组中,非常不方便!
(4)角色
角色是访问控制的一种手段。不同的资源要求有不同的角色才能够访问。比如对Liferay Portal进行配置要求用户具有“Administrator”角色;要想自建网站,用户必须具有“Power User”角色。
在角色管理中,可以对系统缺省的角色重新定义权限。也可以增加新的角色,赋予不同的权限。
二、配置网站和网页[size=large][/size]
可能与传统建站方式不同,使用Liferay建立门户网站会更加简便直观,完全是以“所见即所得”的方式进行设计,布局和配置的。
Liferay Portal缺省有一个Guest社区公共网站,且只有一个名为Welcome的网页。系统管理员可以配置或编辑该网页,也可以为网站增加新的网页,配置外观,设置访问权限等。
系统管理员admin登录后,在网页标签栏右端出现一个“增加页面”的标签,点击此并输入一个网页的名字“中支简介”,按“存储”按钮即建立了新网页。新网页“中支简介”是空白的,需要配置网页类型和外观属性,然后添加需要的内容。
移鼠标到网页右上角“系统管理员”(原来是“Welcome Test Test!”)调出工具菜单,点“处理页(Manage Page――改称为‘网页配置’较易理解)”对网页进行配置处理,配置网页的类型、外观、访问权限,子网页和网页排列顺序等。
由于中文译文不准确,有些词语难以理解,因此在配置时最好是切换到英文界面以便于操作。
1、配置网站外观主题
打开“处理页”的工作窗口,在最上面一行的标签栏中,标签“页(Pages)”即用来定义网站某个页面的属性,“外观与风格(Look and Feel)”用来定义网站的外观主题风格,“出口/进口(Export/Import)”用来导出或导入相关定义参数。
依次点击标签“外观与风格”->“规则浏览器”->“主题风格”,可以看到系统提供了三种外观主题:Brochure,Classic和Liferay Jedi。我们选择Classic主题,并在“色彩设计”中挑选了“blue”风格。这里的“规则浏览器(Regular Browsers)”即指普通电脑的浏览器,是相对于“流动设备”(如手机)浏览器。Liferay Portal 网站可以向手机和PDA等移动上网设备提供服务,缺省只有一个Mobile主题。
Liferay提供外挂主题风格的功能,使用者可以按照Liferay的要求自己定义新的主题风格插件,也可以从Liferay社区下载其他用户制作的主题风格插件,加入到自己的Liferay Portal系统中使用。具体的方法将在“Liferay Portal 应用之开发”篇中介绍。
2、配置网页
在右侧的网站名Guest下排列出现有的网页名字,可以点击某个网页名称,选取右边的标签“Page”,“Children”和“Look and Feel”,对该网页进行配置处理。
(1)网页类型
同普通的HTML格式网页不同,Liferay Portal的网页规定了以下六种类型:
l Portlet:网页内容由Portlet组成。
l Panel:将网页划分成左右两版,左侧显示选定的Portlet应用列表,右侧显示从左侧列表中指定的一个Portlet应用。即相当于在左侧建立一个Portlet应用的树形菜单,右侧显示菜单内容。
l Embedded:本网页内嵌入指定网址的网页。在“URL”栏指定一个网址。
l Article:本网页显示指定的期刊文章内容。在“Article ID”栏输入期刊文章的ID号。
l URL:将本网页跳转到指定的网址上。在“URL”栏指定一个网址。
l Link to Page:将本网页链接到本网站的某个网页上。在“Link to Page”栏选择要链接去的网页。
网页类型“URL”同“Embedded”的区别:“URL”网页是脱离当前网站直接跳转到指定的网址网页上,而“Embedded”网页是把指定网址的网页调入当前网站在本网页里显示之。
网页类型“URL”同“Link to Page”的区别:“URL”网页可以跳转到指定的任何网址上,包括本网站网页和外部网站网页,而“Link to Page”网页只能跳转到本网站内的网页上。
(2)子页
子页的用处不太明确。当在一个网页里定义了几个子页后,在该网页可能看不到子页的存在,除非在网页里添加了网站地图(Site Map)Portlet或导航(Navigation)Portlet才有机会使用它的子页。
(3)网页外观属性
除了网站整体的主题格式外,还可以对网页单独定义它的外观属性,选择主题,配置色调等,而不会影响到其它网页。
(4)网页访问权限
对各个网页可以单独设定其访问权限,确定哪些人可以浏览该网页,是否可以参加评论,是否可以修改网页等。
(5)页面布局
对于类型为Portlet的网页,可以定义网页中Portlet的布局格式,即Portlet应用窗口如何在网页中摆放,如何对齐。
从“系统管理员”菜单下进入“布局模板(Layout Template)”选择窗口,缺省提供了10种布局模板可供使用。每个模板由一到几个版块构成,每个版块内可以放置若干个Portlet,但Portlet在某个版块里横向只能放置一个,即同一版块里的Portlet不能并排放,纵向则不受限制,可以依次排列多个Portlet。Welcome页面选用的是“2 Columns (30/70)”布局模板,左边的版块占页宽的30%,右边版块占70%。但要注意,版块宽度的比例并不是绝对的,当把一个需要更宽位置的Portlet放置到只有30%的版块中时,并不是把该Portlet缩窄,而是把所处的版块给加宽了,相应地,其它板块随之缩窄了。另外,版块的长度是不受限制的,正如Portlet窗口的高度会随它的内容无限制地向下扩展一样。
使用者也可以根据自己的需要,定义自己的布局模板插件或者从Liferay社区下载网友制作的其他布局模板插件。具体的方法将在“Liferay Portal 应用之开发”篇中介绍。
三、制作网页
前面已经介绍过,Liferay Portal的网页有六种类型,其中Embedded、Article、URL和Link-to-Page属于链接型网页,只需定义网页的链接对象即可,而Portlet和Panel类型的网页则需要添加应用内容。其实Panel网页也是在页面配置时,已经基本确定了网页的架构,分为左右两列栏目,左栏是选定的Portlet应用列表,右栏内容则由使用者随时从左栏列表中挑选使用,因此Panel网页也无需特别制作。
现在,唯有Portel网页需要特别制作。与传统网页的制作方式有所不同,Portlet网页的制作过程是:定义布局模板,配置外观主题,添加和配置Portlet应用。显然,在制作网页之前,必须把需要的Portlet应用模块预备好了,也要把Portlet应用模块所需要的内容准备好了,这样才能够把相应的内容展现在网页上。
好在Liferay Portal预制了几十个常用的Portlet模块,经过配置能够满足一般的门户应用。对本单位业务有关的数据内容,就需要自己编写Portlet模块来实现必要的功能,添加到需要的Portlet网页上使用。
在Liferay内置的那些Portlet中,除了系统管理和配置方面的Portlet外,最常用的是网站内容管理类(CMS)Portlet:
l 文件图书馆(Document Library)――管理上载文件。
l 文件图书馆显示(Document Library Display)――列表显示上载的文件。
l 期刊(Journal)――以“所见即所得”方式制作网页内容,即相当于新闻稿件。
l 期刊文章(Journal Article)――列表显示新闻稿件。
l 期刊内容(Journal Content)――显示某篇新闻稿件内容。
l 图像画廊(Image Gallery)――管理上载图片,显示上载图片内容。
l 财产出版者(莫名其妙的中文名,Asset Publish)――上述Portlet工具的集合,可以管理上载文件和图片,制作新闻稿件,列表显示文件/图片/稿件/博客,也可以显示其内容。
借助于上述Portlet工具,完全可以制作出丰富多彩的网页来。而且与传统网页不同的是,能够对Portlet网页中的任何版块进行精细管理,设置访问权限,如哪些人可以上载文件,文件上载到哪个目录;哪些人可以查看哪些目录中的哪些文件;谁可以制作新闻稿件,稿件是否需要批准,谁有批准权限,稿件何时可被浏览;哪些人可以查阅哪些稿件等等。
显然,Portlet网页的制作过程要比传统网页的更为简便,更加灵活。
四、配置用户认证方式
为了能够同其它应用系统共享用户资料,我们打算使用LDAP来替代MySQL数据库进行用户认证。
1、安装配置LDAP服务器
Liferay支持许多款LDAP服务器产品。LDAP可以同Liferay安装在同一台服务器中,也可以单独安装。对于中小型应用来说,开源LDAP是个不错的选择,其中的姣姣者是ApacheDS和openLDAP。
ApacheDS即Apache Directory Server,是Apache开源项目中的子项目,当前版本号是1.5.3,提供了适用于Linux,Mac OS和Windows环境的多个安装版本,下载地址是http://directory.apache.org/apacheds/1.5/。此外,该项目还提供了一个优秀的LDAP管理器Apache Directory Studio,可以从http://directory.apache.org/studio/下载Windows版本的安装软件ApacheDirectoryStudio-win32-1.2.0.v20080818.exe。另一个有名的LDAP管理器是JXplorer(http://www.jxplorer.org/)。
OpenLDAP是最为著名的开源LDAP,可以在许多Linux系统版本中发现她的存在。但在openLDAP的网站http://www.openldap.com/里,可供下载的是需要自己编译的源码程序包。对于在Windows环境下使用它,只能到互联网中搜索了。openLDAP的当前版本号是2.4.11,在网上找到的适合Windows的版本号最高只有2.2.29,显然后续的版本没有保证了。
如果在生产环境中使用,建议选择Linux+openLDAP模式。但我们的测试环境是Windows XP,还是需要临时安装一个windows版本的openLDAP。有两个地方提供openLDAP的Windows版本:
http://www.ilex.fr/openldap.htm/,openLDAP版本2.0.27
http://download.bergmans.us/openldap/,openLDAP版本2.2.29
选择后一个。从http://download.bergmans.us/openldap/openldap-2.2.29/ 下载安装软件openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe,然后直接运行,安装到C:JavaOpenLDAP-2.2.29目录下。安装完成后,在Windows系统中添加了“OpenLDAP”程序组,且可以在Windows系统中添加或移除openLDAP服务。
在启动openLDAP运行之前,我们要对它进行适当的配置,添加初始内容。进入安装目录C:JavaOpenLDAP-2.2.29,打开配置文件slapd.conf进行如下编辑:
(1)添加对象类型
在如下行:
include ./schema/core.schema
的后面,添加下面两行:
include ./schema/cosine.schema
include ./schema/inetorgperson.schema
(2)定义单位域名
把下面的行:
suffix "dc=my-domain,dc=com"
修改为:
suffix "dc=zhongshan,dc=pbc"
(3)设置管理员用户
把下面两行:
rootdn "cn=Manager,dc=my-domain,dc=com"
rootpw secret
修改为:
rootdn "cn=manager,dc=zhongshan,dc=pbc"
rootpw schnell
其中,管理员用户名manager,口令schnell。
在当前目录再建立一个初始化文件init.ldif,其内容如下:
dn: dc=zhongshan,dc=pbc
objectclass: top
objectclass: dcObject
objectclass: organization
o: zhongshan
dc: zhongshan
然后打开DOS窗口,进入openLDAP的安装目录下执行:
slapadd -f slapd.conf -l init.ldif
将把init.ldif文件中的初始化数据装载到openLDAP数据库中。
至此,可以进入Windows的服务管理中,启动openLDAP应用服务。
2、安装配置LDAP管理器
接下来需要安装一个LDAP管理器,以方便维护openLDAP中的用户资料。Apache Directory Studio是个不错的选择,功能上要强于JXplorer管理器。只需要直接运行下载的安装软件ApacheDirectoryStudio-win32-1.2.0.v20080818.exe,并指定工作目录为C:JavaApacheDirectoryStudio-1.2。安装结束后,建立了程序组“Apache Directory Suite”,我们可以进入Studio目录,启动Studio管理器。
在Studio管理器初始启动界面中,点击右下角的Workbench图标进入工作台。把鼠标移动到左下角的Connections窗口内,点击右键,选“New Connection…”打开连接LDAP的配置窗口。指定参数Connection name为openLDAP,Hostname为LDAP的安装主机名,在本机上可以使用localhost或本机名neu。openLDAP缺省Port端口号是389。然后点击“Check Network Parameter”按钮进行连接测试,提示连接成功。
接下来配置openLDAP管理员用户认证方式:
Authentication Method : Simple Authentication
Bind DN or user : cn=manager,dc=zhongshan,dc=pbc
Bind password : schnell
同样进行测试,按下“Check Authentication”按钮,提示认证成功。按“Finish”按钮完成配置,连接openLDAP进入管理界面。
利用LDAP管理器可以很方便地建立起上述架构的用户资料。作为测试之用,先建立两个群组“系统”和“科技科”,建立两个用户“admin”和“niujingxiao”,且用户“admin”隶属“系统”组,“niujingxiao”同时隶属于“系统”和“科技科”两个 组。具体操作步骤在此不作详述。
现在,按照我们的实际情况,设计LDAP数据库中的组织和用户架构如下:
3、配置Liferay使用LDAP认证用户
系统管理员admin登录Liferay系统,从“我的地方”到“我的公共”打开“私有页”。把“企业Admin”Portlet窗口最大化显示,依次点击标签“设置”->“认证”->“LDAP”。
(1)开启LDAP认证:
勾选“使能”,允许从LDAP读取用户资料来认证用户。未勾选“必需”,即不要求用户必须在LDAP中,仅在Liferay系统里也可以获得认证。
(2)配制LDAP连接参数:
基本的提供者URL :ldap://neu:389/
基地DN :dc=zhongshan,dc=pbc
主要 :cn=manager,dc=zhongshan,dc=pbc
证件 :schnell
按“测试LDAP连接”按钮,系统提示连接成功。进入下一步配置。
(3)配置用户参数:
认证查寻过滤器 :(cn=@screen_name@)
进口查寻过滤器 :(objectClass=inetOrgPerson)
下面是Liferay与LDAP的用户项对应关系:
屏幕名称 :cn
密码 :userPassword
电子邮件 :mail
全名 :displayName
名字 :givenName
姓 :sn
职称 :title
群组 :ou
按“测试LDAP用户”按钮,系统显示出从LDAP调出来的用户资料。继续进入下一步配置。
(4)配制群组参数:
进口查寻过滤器 :(objectClass=groupOfUniqueNames)
下面是Liferay同LDAP的群组项对应关系:
组名 :ou
描述 :description
使用者 :uniqueMember
按“测试LDAP小组”按钮,系统显示出从LDAP调出来的用户群组资料。继续进入下一步配置。
(5)配置用户资料输入/输出方式:
勾选“进口使能”,即允许从LDAP自动输入用户和群组资料。
勾选“进口在起动使能”,允许在Liferay启动之时,从LDAP自动输入用户和群组资料。
进口间隔时间 :为了测试只选择了5分钟,实际应用中应该选择较长时间,以免频繁访问LDAP。
勾选“出口使能”,允许从Liferay向LDAP输出用户和群组资料,资料输出的约束关系如下:
用户DN :ou=users,dc=zhongshan,dc=pbc
用户预设组件 :top,person,inetOrgPerson,organizationalPerson
小组DN :ou=groups,dc=zhongshan,dc=pbc
(6)配置密码策略:
勾选“使用LDAP 密码政策”。也可以不使用LDAP密码策略。
以上配置和测试完成之后,按下“储存”按钮结束配置。管理员用户admin退出系统,用LDAP中的新用户名niujingxiao登录Liferay能够成功进入系统。再用admin用户登录检查发现,niujingxiao的用户资料,LDAP中的两个群组“系统”和“科技科”的资料都自动输入到Liferay系统了。
完成以上配置之后,整个Portal应用架构就搭建起来了。