SUNONE Portal 开发指南.docx
- 文档编号:9889650
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:24
- 大小:1.25MB
SUNONE Portal 开发指南.docx
《SUNONE Portal 开发指南.docx》由会员分享,可在线阅读,更多相关《SUNONE Portal 开发指南.docx(24页珍藏版)》请在冰点文库上搜索。
SUNONEPortal开发指南
SUNONEPORTAL
开发指南
版本号:
2.0
2004年03月30日
目录
1引言1
1.1编写目的1
1.2引用术语1
1.3版本控制1
1.3.1文档信息1
1.3.2版本历史1
1.3.3分发列表2
2概述3
3WebServerJSP/Servlet的开发部署4
4登录和Portalet个性化8
4.1登录页面个性化8
4.2Portal个性化页面的定制8
5WebServerfilter的开发部署9
5.1filter简介9
5.2filter的开发和部署9
6Portaltab,channel,table开发部署10
6.1注册Services10
6.2配置DeskTop13
6.3JSPProvider管理15
6.3.1添加JSPProvider15
6.3.2修改JSPProvider17
6.3.3删除JSPProvider18
6.4JSPTableContainer管理19
6.4.1添加JSPTableContainer19
6.4.2删除JSPTableContainer21
6.4.3修改JSPTableContainer21
6.4.4添加Portlet23
6.5JSPTabContanier管理24
7SSOAPI的开发25
8DominoSSO的开发26
9SUNJAAS的开发27
1引言
1.1编写目的
本文以江苏移动EMIS项目为背景,全面介绍SUNONEPortal相关开发。
1.2引用术语
1.3版本控制
1.3.1文档信息
文档准备人:
周胜宇,尧霞,赖庆辉
准备日期:
审阅人:
审阅日期:
审阅人:
审阅日期:
1.3.2版本历史
日期
版本号
作者
说明
1.3.3分发列表
编号
姓名
职位
组织
2概述
SunOnePortal开发涉及到:
●WebServerJSP/Servlet开发
●登录和个性化
●Desktop配置
●SSOAPI
●JAAS认证方法扩展
3WebServerJSP/Servlet的开发部署
SunOnePortal既然是一个web应用程序,就需要一个web容器,他默认安装是SunOneWebServer6.0(Servelt2.2)
WebServer是个jsp容器,可以用来解析jsp和servlet,可以用来发布web应用程序。
操作步骤如下:
在IE地址栏输入WebServer的url和端口号,例如:
http:
//ns.js.cmcc:
8088/,进入管理界面。
点“Manage”
点“VirtualServerClass”标签,
点“Manage”
点“Manage”
点“WebApplications”
根据提示即可部署你的应用程序。
4
登录和Portalet个性化
4.1登录页面个性化
SunONEPortal6.1登陆页面个性化所要修改的页面包括:
登陆页面、退出页面、各种出错情况下所显示的页面等。
这些页面都存放于WebServer的目录当中。
具体位置为:
登录页面:
/opt/SUNWam/web-apps/services/config/auth/default/Login.jsp
退出页面:
/opt/SUNWam/web-apps/services/config/auth/default/Logout.jsp
输入错页面:
/opt/SUNWam/web-apps/services/config/auth/default/login_failed_template.jsp
会话过期页面:
/opt/SUNWam/web-apps/services/config/auth/default/session_timeout.jsp
定制登录页面时,你只需根据具体情况的需要,修改这些JSP文件即可。
4.2Portal个性化页面的定制
SunONEPortal6.1的Desktop个性化一般在于修改现有的一些模板文件。
具体包括:
/etc/opt/SUNWps/desktop/default/JSPTabContainer/文件夹下的availableTabs.jsp、header.jsp、menubar.jsp、selectedTab.jsp、tab.jsp、tabs.jsp、tabedit.jsp、makeNewTab.jsp、makeTopic.jsp、remove.jsp、removeRenameTab.jsp。
/etc/opt/SUNWps/desktop/default/JSPTableContainerProvider/文件夹下的header.jsp、launchPopup.jsp、leafWrapper.jsp、menubar.jsp、table.jsp、tablecolumn.jsp、providerCommands.jsp、tabletopbottom.jsp、tabtable.jsp、toptable.jsp。
定制PoratalDesktop页面时,你只需根据具体情况的需要,修改这些JSP文件即可。
5WebServerfilter的开发部署
5.1filter简介
filter(过滤器)是servlet2.3中增加的一个新功能,filter可以改变一个请求(request)或者是修改响应(response)。
filter不是一个servlet,它只是一个servlet接受到请求前的预处理器。
就是说,用户发送一个请求给servlet时,在servlet处理之前,这个filter首先执行,然后才是servlet的执行。
作用
filter可以用在下面几个方面
1:
访问特定资源(Web页、JSP页、servlet)时的身份认证
2:
访问资源的记录
3:
访问资源的转换
5.2filter的开发和部署
首先需要明确filter的作用,我们以江苏移动portal项目为例,因为江苏移动有好多的oa系统,都要整合到一个portal里来,所以我们需要知道不同的人要登陆到那一个oa系统,同时还需要对登陆人员的ip进行判断,看他的ip是否合法,如果不合法,给该用户的手机发一条短信作为提示。
(这个功能也可以放在jaas里)。
明确了目的,接下来就是代码的编写了,因为用户通过jaas验证通过后,我们已经知道用户的uid了,并且可以通过他查出用户的一些其他信息,如:
该用户属于哪个组织,我们可以把它放到cookies里,一同传递到页面去,然后在页面中取出数据,根据该信息,连接到相应的oa服务器中去。
同理我们可以得到用户的登陆ip,通过对ip的合法性进行判断,来决定该如何操作,如不合法,可以通过调用smsapi来给用户发一条提示短信。
完成该步骤后就需要对filter进行部署,首先要修改web-apps.xml文件,然后把你开发的filter进行编译打包,放在相应的服务上,从启服务即可完成部署工作。
6Portaltab,channel,table开发部署
6.1注册Services
进入要进行DeskTop管理的组织,在左侧Frame的“Show”中选择“Services”:
点击“Register”按钮:
在右侧Frame中选择要提供的Services,点击“Register”按钮注册:
注册成功后结果如下:
点击注册的Service右侧的箭头图案,然后点击右侧Frame的“Create”按钮,注册Service:
注册成功:
6.2配置DeskTop
进入选择的组织,Show:
Services->DeskTop->ChannelandContainerManagement
6.3JSPProvider管理
6.3.1添加JSPProvider
6.3.2修改JSPProvider
6.3.3删除JSPProvider
6.4JSPTableContainer管理
6.4.1添加JSPTableContainer
6.4.2删除JSPTableContainer
选中要删除的JSPTableContainer
6.4.3修改JSPTableContainer
点击要修改的JSPTableContainer后的“Edit”
修改属性后保存
6.4.4添加Portlet
6.5JSPTabContanier管理
7SSOAPI的开发
其他的基于WEB(JSP/Servlet)的系统(如经营分析),首先要做的就是用户身份的验证,例如:
江苏移动要把经营分析整合到portal中.
Portal验证通过,显示首页,并会在Client端Cookie中存放SSOTokenId,Portlet“经营分析”的JSP获取clientcookie中的SSOTokenId,通过调用Token2Value类的方法对SSOTokenId进行检查,验证该Token是否是合法的Token,如果Token合法,返回UserId,如果Token不合法返回null。
“经营分析”系统如果得到了UserId,就在程序中去相关的数据库获取用户名和密码,以此用户名和密码去其必须的系统进行登陆。
详细请看SDK.
8DominoSSO的开发
DSAPI是DominoWebServerFilter接口,详细文档可参考DSAPI设计概要。
值得注意的是,在江苏移动由于采用了loadBalance并深入研究了SUNIdentityServerAPI.在技术上采用了不同方法。
原来的方法:
其中AgentServer是Java写的SocketServer,他调用SUNSDK和IdenttityServer通信。
新的方法:
取消了AgenetServer,在DSAPI中判断loadbalance的cookie是哪个identiteServer产生的,直接用http取得认证信息。
9SUNJAAS的开发
Portal6.1和以前的Portal6.0认证方式很不一样,6.0比较简单。
Portal6.1要扩展认证模块需要继承AMLoginModule抽象类,必须实现其中的三个方法:
init()、process()、getPrincipal(),还需要实现一个类,这个类必须要继承Principal,Serializable接口。
扩展SunONEIdentityServer6.0认证模块的部署过程:
1.新增认证名称为:
AuthenticationMdcl
特别注意:
AuthenticationMdcl.java必须有包名
2.将*.java打成包AuthenticationMdcl.jar
javac-d./*.java
jarcvfAuthenticationMdcl.jarcom/mdcl/authentication/*.classcom/mdcl/util/*.class
各文件位置示意如下:
把打包好的AuthenticationMdcl.jar放到目录
把AuthenticationMdcl.xml配置文件放到如下目录
3.修改
在相应位置加上如下两句话:
(在控制台供用户选择Services->Core->OrganizationAuthenticationModules)
4.Addthe"AuthenticationMdcl.jar"filepathtotheWebserverJVMclasspath:
修改
jvm.classpath=.......:
5.使新的amAuth.xml生效,进入
./amadmin--runAsDNuid=amAdmin,ou=People,
./amadmin--runAsDNuid=amAdmin,ou=People,
例如:
opt/SUNWam/bin/amadmin--runasdnuid=amadmin,ou=people,dc=js,dc=cmcc--passwordpassword--deleteserviceiPlanetAMAuthService
opt/SUNWam/bin/amadmin--runasdnuid=amadmin,ou=people,dc=js,dc=cmcc--passwordpassword--schema/opt/SUNWam/config/xml/amAuth.xml
6.重新启动dsame和portal
7.以超级用户身份(amadmin)进入控制台,选择Services->Core->OrganizationAuthenticationModules->LDAP和AuthenticationMdcl;再选择AdminAuthenticator的Edit,添加AuthenticationMdcl,点“Save”,定制的AuthenticationMdcl认证模块生效。
详细的代码用例可以参考:
idsame6.0api中的samples\authentication\providers,有详细的Readme和代码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SUNONE Portal 开发指南 开发 指南
![提示](https://static.bingdoc.com/images/bang_tan.gif)