NCV61-Portal技术红皮书.docx_第1页
NCV61-Portal技术红皮书.docx_第2页
NCV61-Portal技术红皮书.docx_第3页
NCV61-Portal技术红皮书.docx_第4页
NCV61-Portal技术红皮书.docx_第5页
免费预览已结束,剩余66页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第一章Portal简介4第二章Portal架构图5第三章预制Portlet6一、框架Portlet61、if_height62、if_src63、if_width7二、TriggerIframePortlet与MonitorIframePortlet9三、FreeMarkerPortelt91、继承Portlet102、编辑Portlet10四、任务Portlet121、查询任务列表122、获取单据类型133、获取任务处理URL134、批量任务更新135、显示获取字段136、执行命令14五、菜单Portelt151、我的功能Portlet155.1.1绑定菜单155.1.2动态集成菜单152、浮动菜单163、页签Portlet164、OutLook导航Portlet16第四章Portal界面17一、概念17二、创建Portal页面17三、布局设计181、布局排序182、布局Icon193.2.1设置布局Icon193.2.2获取图标193、布局禁用204、布局复制粘贴20四、布局分配20五、多级布局21六、绑定菜单22第五章Portlet开发23一、Portlet容器231、获得Portlet容器232、使用Portlet容器23二、Portlet分类25三、Portlet视图26四、Portlet 资源26五、Portlet 动作27六、Portlet事件271、创建Portlet事件272、触发Portlet事件283、响应Portlet事件284、Portlet事件输出29七、Portlet参数29八、Portlet参数编辑器30九、Portlet权限分配32第六章集成33一、概念介绍33二、整体介绍34三、API介绍34四、表单集成351、配置系统352、配置属性363、实例36五、LFW集成38六、NC6集成39七、NC5.7 集成39八、E-hr 5系列产品集成40九、集成开发API401、获取最后进入web系统的实际URL402、进入第三方集成系统的凭证制作413、返回所有第三方系统需要验证的字段定义414、用户登录信息校验425、获取集成系统指定节点的登陆URL43十、Portal与功能节点集成431、获得用户功能节点432、获得所有节点443、获得所有功能节点分类45十一、Portal与三方系统集成451、IWebAppLoginService接口的方法介绍4511.1.1获取最后进入web系统的实际URL4511.1.2进入第三方集成系统的凭证制作4611.1.3返回所有第三方系统需要验证的字段定义4711.1.4用户登录信息校验4811.1.5获取集成系统指定节点的登陆URL492、集成过程4911.2.1实现授权类4911.2.2配置单点登录系统5011.2.3配置显示集成系统的布局5011.2.4配置Portlet与系统的关联51十二、功能节点导入51第七章消息53一、集成消息53二、集成第三方消息54三、消息分类54四、消息命令56第八章任务56一、集成NC流程56二、集成第三方流程57第九章主题开发58一、概述58二、页面样式58三、布局样式58四、Portlet样式59第十章门户高级功能61一、登录前后处理,指定登录后页面61二、登录链61三、CA登录63四、域认证64五、第三方登录64六、门户扩展点65七、门户设置66八、门户FreeMarker扩展68九、门户模块配置69十、门户部署机制70第十一章引用的技术文档71第一章 Portal简介UAP Portal是基于JSR286规范而实现的一套J2EE技术体系架构的Portal。它构建于UAP平台之上,提供了灵活而丰富的个性化和管理定制功能。UAP Portal允许多种安全认证方式和自选第三方系统用户来源,采取了基于角色访问控制(RBAC)的权限模型。并提供了完善和通用的第三方系统集成框架和单点登录框架,UAPPortal发版默认集成NC、IUFO、BO、自定义查询报表应用,实施SSO比商业Portal简单易用。它提供的Portal管理功能,允许管理员在运行态对Portal进行定制,而无需重启甚至编码。同时,内建的换肤机制使得实现自定义皮肤非常简单。UAP Portal提供了引入了一套开发工具,,使得Portal开发非常简单。第二章 Portal架构图第三章 预制Portlet一、 框架Portlet框架Portlet是一通用简单集成Portlet,可用于管理员为所有用户定制内容。管理员可定制此Portlet完成对一现存站点的引入,可以定义任意数量。比如:将常用站点 引入Portal的一个页签中,只需要做下面几步: 系统管理应用平台管理门户配置布局管理中选择新建系统布局,选择框架Portlet并拖入,点击保存。 在布局管理中刷新并展开刚创建的布局,找到刚刚加入的框架portlet,设置其链接地址属性,指明url地址。对于一个布局中只有一个框架portlet的情况,设置高度为0,这样IFramePortlet的高度会自动调整来适应页面的高度,设置完成后保存。允许浏览此布局的用户注销重新登陆,即可看到此布局。 该Portlet可以配置的个性化信息如下:1、 if_height说明设置ifreame的高度可选值0: 适应页面大小,撑满页面-1: 适应内容高度其它:指定像素的高度举例if_height-1false2、 if_src说明指定ifreame 内容的url取值方式方式1:从公共参数里取(如Url传参的形式);方式2:从属性里取;注:公共参数优先级较高举例if_src链接地址false使用Url传参的形式, 举例截图如下:3、 if_width说明指定iframe 的宽度可选值百分比:如100%举例if_width100%false开发过程:在Portlet上点击右键,从模板新建Portlet,选择IframePortlet,输入id,名称及嵌入的URL即可。在编辑器右边属性栏中可修改portlet对应的类、描述等信息。在下方模型视图中配置此portlet的具体属性。二、 TriggerIframePortlet与MonitorIframePortletTriggerIframePortlet是可以触发switchIframeContentEvent事件的框架Portlet,它继承自框架Portlet。该portlet会触发switchIframeContentEvent事件,监听switchIframeContentEvent的portlet会响应该事件。常见的监听Portlet有MonitorIFramePortlet及其子类。使用举例:通过该portlet可以设置响应switchIframeContentEvent事件的url。示例代码如下:document.getContainer().doAction(url)MonitorIframePortlet是监听switchIframeContentEvent事件的IframePortlet, 常与TriggerIframePortlet共同使用。当是自定义触发的Portlet时应将switchIframeContentEvent加入support-publish-event,不建议在一个Page中引用两个MonitorIframePortlet。三、 FreeMarkerPortelt套用FreeMarker模板的Portlet,该portlet主要用于解析FTL文件路径并把ftl文件内容渲染成Html。开发过程:1、 继承Portlet创建一个类继承自FreeMarkerPortlet,代码示例如:package nc.test Public class MyFunctionPortlet extends FreeMarkerPortlet Overrideprotected void doView(RenderRequest request, RenderResponse response)throws PortletException, IOException Map root = new HashMap();root.put(WINDOW_ID, request.getWindowID();print(renderHtml(root), response);再在该类所在包(nc.test)下创建一个同名的ftl文件FreeMarkerPortlet.ftl窗口ID:$ WINDOW_ID 2、 编辑Portlet在Portlets节点上点击鼠标右键,可新建portlet分类或直接新建portlet。输入Portlet的id及name,点击OK按钮。新建并打开portlet编辑器。在编辑器右边属性栏中可修改portlet对应的类设置为刚才新建的类nc.test. FreeMarkerPortlet即可。四、 任务Portlet任务portlet主要包括任务列表的查询、单据类型、任务处理的URL、显示字段的获取、和指令的执行。1、 查询任务列表查询任务列表/* * 查询任务列表. */WfmTaskVO qryTaskList(TaskQryParam param, PaginationInfo pinfo);参数说明:param 任务查询参数,包括状态、系统、单据类型、关键字、当前用户等。Pinfo:分页信息返回:任务列表2、 获取单据类型获得单据类型/* 获得单据类型*/WfmFlwTypeVO getBillTypes();3、 获取任务处理URL获得任务处理的URL/* 获得任务处理URL*/TaskProcessUI getTaskProcessUrl(String pk_task);参数说明:pk_task 任务的主键返回:任务UI界面4、 批量任务更新批量任务更新/* 批量任务执行*/String doMutiTaskProcess(String pk_task);通过多个任务的id进行多个任务更新操作。5、 显示获取字段显示字段的获取/* 获取显示的字段*/Map getVisableColumn(String billtype);通过单据类型查询需要显示的字段。6、 执行命令执行命令/* 执行命令*/void doCmd(String cmd, String pk);根据不同的指令走相应的url,如根据是“便签”或是“催办”,分别执行“/portal/pt/task/scratchpad”和“/portal/app/mockapp/urgencyView”的链接。示例代码如下:Overridepublic void doCmd(String cmd, String pk) if(scratchpad.equals(cmd)String url = /portal/pt/task/scratchpad?id= + pk;AppLifeCycleContext.current().getApplicationContext().showModalDialog(url, 便签, 480, 320, isurgency, );if(isurgency.equals(cmd)String url = /portal/app/mockapp/urgencyView?pk= + pk;AppLifeCycleContext.current().getApplicationContext().showModalDialog(url, 催办, 480, 320, isurgency, );五、 菜单Portelt1、 我的功能Portlet该portlet主要功能是显示菜单组 ,分为绑定菜单和动态集成菜单。5.1.1 绑定菜单绑定菜单即为布局绑定一个菜单,有“系统管理”权限的用户登录,在“门户配置”的“布局管理”模块,选择一个布局,点击“高级设置”即可打开布局菜单绑定页面,选择一个“绑定连接组”即可完成菜单绑定,示意图如下:5.1.2 动态集成菜单动态集成菜单主要是通过虚菜单接口在页面的绑定,具体实现类去完成菜单的动态的生成。如NC系统的消息通过虚菜单的实现进行动态抓取,并在我的功能区进行显示。虚菜单接口IVirtualMenuProvider说明如下:List getMenuItems();获取菜单项Integer getStat();消息状态数目2、 浮动菜单浮动菜单Portlet主要是显示界面上Portal页面绑定的菜单.开发方式:1).系统管理 应用平台管理 门户配置布局管理中打开布局设计器.拖放一个浮动菜单Portlet.选中该Portlet.设置样式为浮动.2).选中步骤1创建的布局.点高级设置.选择一个绑定菜单.3、 页签Portlet 页签Portlet是门户提供的一种菜单展现样式.以Tab页的形式来展示菜单的内容.开发方式:1).系统管理 应用平台管理 门户配置布局管理中打开布局设计器.拖放一个页签Portlet.2).展开步骤1创建的布局,选择页签Portlet.点高级设置.选择一个菜单.页签Portlet可以设置高度宽度4、 OutLook导航PortletOutlook导航Portlet是门户提供的一种菜单展现样式.以OutLook导航的形式来展示菜单的内容。开发方式:1).系统管理 应用平台管理 门户配置布局管理中打开布局设计器.拖放一个OutLook导航Portlet.2)拖入一个布局, 选中,点击样式下拉框,选择”框架布局”并保存3).展开步骤1创建的布局,选择页签Portlet.点高级设置.选择一个菜单.也可以在此设置OutLook导航Portlet的高度与宽度注意:为了实现在页签内打开OutLook导航Portlet选中的菜单项,需要在当前页面中的一个布局样式设置为框架布局.该布局与正常布局一样,可以容纳Portlet.但是在收到OutLook的请求时会将布局内容切换到菜单项界面.第四章 Portal界面一、 概念UAP Portal 使用Pml界面组件结构标记语言对页面进行描述。Pml 包括布局(Layout)对象及Portlet对象。布局可嵌套布局和Portlet,从而组成相对复杂的界面。一个页面中的portlet不能重复。二、 创建Portal页面在“Portal页面”节点上点击鼠标右键新建page页面。输入id 及 tilte,点击ok按钮,新建Page完成,并打开page编辑器。在page编辑器中进行page布局配置。三、 布局设计1、 布局排序布局排序是指在布局列表中“是否主页”的那一列,是主页的分组会按照优先级排序,不是主页的分组也会按照优先级进行排序。示意图如下:2、 布局Icon3.2.1 设置布局Icon布局Icon是为已创建的布局设置绑定的图标,示意图如下:3.2.2 获取图标通过步骤1设定好布局的菜单和图标后,可以通过导航栏菜单项获取其图标。示意代码如下:示意代码如下:获取页签Page myPages = PortalPageDataWrap.getUserPages();PageMenu menu = PortalPageDataWrap.getUserMenu(myPages);Map root = new HashMap();Root.put(“USER_MENU”,MENU);Ftl文件获取图标3、 布局禁用布局禁用是停止用户使用该布局,通过“布局管理”的“高级设置”,把“是否启用”开关关闭即可。示意图如下:4、 布局复制粘贴布局的复制和粘贴是方便布局快速高效的重用,通过选中要重用的布局点击“复制”按钮即可获得该布局的一份拷贝,选择要放入的组织后点击“粘贴”按钮即可把拷贝的布局复制到目标组织下。示意图如下:四、 布局分配布局分配是指为新建的布局或已分配的布局分配使用的对象,这些对象包括角色、用户、组织等。同时分配过的也可以取消分配,即停止上述对象使用该布局。示意图如下:五、 多级布局多级布局包括:支持全局下的布局分配的对象为所有组织;布局分配时可以分配给当前组织下的子组织或子组织下的用户或角色。示意图如下:六、 绑定菜单绑定菜单是为布局设置菜单,设置菜单后可以直接通过菜单使用该布局,绑定示意图如下:第五章 Portlet开发一、 Portlet容器1、 获得Portlet容器场景1 : JSP页面中getContainer(#);场景2 : Iframe Portlet页面中document.getContainer();注意:1)在Iframe中获得容器,必须保证iframe页面与Portal 在同一个域下2)要判断Iframe中是否已经注入了此函数2、 使用Portlet容器Portlet容器提供的函数方法参数名称是否必须参数作用返回值备注createPart*title是标题新创建的链接块在Portlet窗口上创建一个链接块href是链接createSep*segment否分隔符新创建的块在Portlet窗口上创建一个分割块createBlankPart*-新创建的块在Portlet窗口上创建一个空白块setTitle*title是标题标题对象设置标题setContent*content是内容内容对象设置内容setExposed*-当前容器隐藏外框setUnExposed*-当前容器恢复外框doMax*-窗口最大化doReSize*-窗口复原showTips*-显示提示框hideTips*隐藏提示框doView-切换到查看模式doEdit-切换到编辑模式doHelp-切换到帮助模式doRefreshtimesamp是时间间隔-设置刷Portlet新周期doAction-调用Portlet默认事件ProcessActiondoActionframeUrl是链接地址-调用Portlet默认的事件,并传递一个frameUrl参数doActionname是事件名称-调用指定的Portlet动作param是参数列表getOuter-最外层的布局获得最外层的布局getRow-所在列获得所在的列注:标有*号的方法可以重载二、 Portlet分类Portlet分类是为了让Portlet更容易查找,在Portlets节点上点击鼠标右键选择“新建Portlet分类”,弹出新建Portlet分类对话框。输入ID、text、i18nName后点击OK按钮,Portlet分类创建成功。在建好的Portlet分类上点击鼠标右键。可以在分类中新建Portlet,或编辑、删除当前分类。三、 Portlet视图UAP Portal 6.0支持 “查看”、“编辑”、“帮助” 三种标准视图,有关视图的信息,请参考JSR286规范。UAP Portal 6.0 支持 “最大化”、“正常”、“最小化” 三种模式,有关模式的信息,请参考JSR286规范。四、 Portlet 资源UAP Portal 6.0 支持Portlet资源请求,详细信息请参考JSR286规范。示例代码:/使用Tag获取资源img src=五、 Portlet 动作Portlet动作是Portlet前后台交互的一种方式。可以通过Tag、JavaScript来调用。示例代码:/使用ProcessAction Annotation定义一个动作,名称是 “myaction1”ProcessAction(name=myaction1)public void myaction1(ActionRequest request, ActionResponse response)./Tag调用动作 a href= Help /JavaScript调用动作 getContainer(#).doAction(”myaction1”,);六、 Portlet事件1、 创建Portlet事件Portlet事件是JSR286中新引入的一个特性,规范了Portlet间的交互。Portlet事件是松耦合的,在一个页面中可以没有接收者或者多个接收者。通过Portal定义中的“事件”节点对portlet相关的事件进行定义。事件编辑器如下:注意:值类型必须是可被JAXB序列化的对象2、 触发Portlet事件a) 在Portlet编辑器模型视图中选择SupportedPublishingEvent选项卡,选中要触发的事件。b) 在Portlet类中触发事件示例代码:ProcessAction(name=myaction2)public void myaction2 (ActionRequest request, ActionResponse response)/ 触发事件 .response.setEvent(myevent1, hello portal!);3、 响应Portlet事件a) 在Portlet编辑器模型视图中选择SupportedProcessingEvent选项卡,选中要响应的事件。b) 在Portlet类中响应事件示例代码:/* 处理事件*/ProcessEvent(name=myevent1)public void myevent1(EventRequest request,EventResponse response)String value =(String)request.getEvent().getValue();response.setRenderParameter(value, value);/* 输出View视图*/public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException String value = request. getParameter(value, null);4、 Portlet事件输出a) Portlet容器默认在处理完一个Portlet的事件之后,会将这个Portlet的view视图重新输出到前台。b) UAP Portal6.0提供了一种”执行脚本”的响应方式,在视图层执行一段JavaScript脚本, 不重新输出Portlet视图。示例代码:ProcessEvent(name = execScriptEvent)public void execScriptEvent(EventRequest request, EventResponse response) String value = (String) request.getEvent().getValue();addExecScript(response, alert( + value + ););七、 Portlet参数Portlet参数描述如下表:参数名称参数作用备注name参数的名称Value参数的值复杂的值需要用CDATA包括。如:read-only设置是否可修改为true时页面不能修改description参数的描述注:该表参考portlet.xml文件内容。八、 Portlet参数编辑器参数编辑器是通过扩展portlet配置编辑扩展点完成的,扩展可以对页面portlet参数进行改造或是定制完成自己的业务需求。示例:自己的扩展,实现IPreferenceEditor扩展点public class PageManagerSeniorSetServiceImpl implements IPreferenceEditor 定制自己页面元素Overridepublic void processFormElement(FormElement ele) CpMenuCategoryVO menus = CpbServiceFacility.getMenuQry().getMenuCategory( activeflag = Y );if (menus != null & menus.length 0) LfwWidget widget = ele.getWidget();ComboData cd = new StaticComboData();cd.setId(ele.getId();for (CpMenuCategoryVO menu : menus) CombItem item=new CombItem();item.setValue(menu.getPk_menucategory();item.setText(menu.getTitle();cd.addCombItem(item);widget.getViewModels().addComboData(cd);ele.setEditorType(EditorTypeConst.COMBODATA);ele.setRefComboData(ele.getId(); 指定portlet idpublic String getPortletId() return 模块:portletID,模块:portletID ; 支持多个portlet的参数编辑Overridepublic void afterDataSave(Dataset parentDs, Dataset currentDs) 支持对保存之后进行回调操作Overridepublic void beforeDataSave(Dataset parentDs, Dataset currentDs) 支持对保存之前进行回调操作注:需要把自己的扩展点在plugin.xml中进行绑定。上述例子的扩展点配置举例如下: . .九、 Portlet权限分配Portlet权限的分配是通过“布局管理”的“分配”功能进行的,即对Portlet的权限控制可以通过“角色”、“用户”、“组织”进行分配。示意图如下:第六章 集成一、 概念介绍UAP-Portal的集成方案是基于凭证的思想设计和实现的。对于UAP -Portal集成的每个第三方系统都有一个制作凭证的页面,该页面用于当前登录的portal用户输入对应的第三方系统的用户信息,在正常情况下,该制作凭证的页面只会出现一次。当用户输入的第三方系统身份进行验证后,会自动在portal系统的数据库中建立一对凭证槽和凭证信息,这对信息记录了portal用户在特定的portal布局和特定的portlet下,与该第三方系统的身份对应关系。当该用户之后登录portal并进入被集成第三方系统时,portal系统负责获取之前成功建立的对应第三方系统身份信息,并用该身份信息进行第三方系统的身份认证。这一切的操作对当前登录用户来说都是透明的,他们看到的是没有输入任何身份信息而以正确的身份进入了第三方系统。另外,在用户每次登录第三方系统时,都会根据第三方系统的要求进行身份认证,因此这个登录过程是安全的。UAP-Portal的SSO基本思路如下:使用数据库来存储各应用系统的访问凭证并关联portal用户,在portal登录后通过登录的portal用户自动找到该应用系统的凭证直接进入各应用系统 。图1、UAP-Portal SSO的凭证库模型在UAP-Portal的SSO方案中,存在凭证库槽与凭证的概念。其中凭证库槽用来模拟凭证库存放地,一个凭证库槽就是一个用户的一个portlet的凭证存放地。凭证库槽主要包含如下字段:Portal用户ID(userid):portal用户,当前登录的用户ID。Portlet ID(portletid):portlet标识,被集成的第三方系统对应的Portlet,在portal系统中,每个被集成第三方系统作为一个单独的Portlet存在。共享级别(sharelevel):该字段表明凭证被共享的程度,共享分为三个级别:专有、应用共享、全局共享。专有是只能本用户本portlet使用,不能被其他任何Portlet共享;应用共享是本用户在整个相同应用系统中可以与其他Portlet共享,例如处于该级别的所有NC系统的portlet都可以,如NC集团应用、NC待办事务以及NC报表都能够共享,即用户只要登录这些Portlet中一个,其他都可以使用这些身份自动登录;全局共享是所有用户在整个一相同应用系统中都共享。共享级别直接在portlet.xml中通过来定义,如果不设置,默认为应用共享:share_level1说明:共享级别含义,专有0;应用共享1;全局共享2在portlet.xml中定义了什么级别,该portlet保存凭证时就以该级别创建凭证槽。在当前Portal实现中,这些级别都已经得到了实现,但通常使用的是应用共享级别。 凭证库模型设计包含两个过程:凭证的创建和凭证的维护。凭证的创建过程是通过用户登录集成第三方页面,输入合法的第三方系统用户名和密码,和第三方系统需要的信息来实现的。通过此过程,系统在数据库中记录凭证库槽及凭证的对应信息。除了由用户自身创建凭证之外,在Portal502中,还提供了由管理员在Portal管理/用户管理中统一为用户批量制作凭证的功能。在该节点中,可以为用户关联所有的现有系统,这样可以方便的为现有用户批量制作凭证,也可以在用户创建时就与被集成系统的用户相关联,这样用户在登录Portal系统时将能够自动登录被集成系统,而不会再经历制作凭证的过程。二、 整体介绍对于UAP-Portal来说,对Web系统的集成提供了完善的支持和解决,至于对c/s系统的集成需要,只提供了简单的支持功能。对Web系统的集成,目前有大小之分。集成一个单独的系统如NC、IUFO、BO系统采用单独的一个布局存放(当然,该布局也是由一个portlet组成),这些Web系统称为“大”系统。另外,在Portal502中还存在另外一些集成第三方系统的“小”portlet,如NC待办事务Portlet、NC报表Portlet、IUFO报表Portlet等,这些是以“小”Portlet的形式出现的。他们主要提供一些对集成系统的辅助功能,如对NC待办事务的提取、对IUFO报表信息的提取。这两种方式功能侧重点略有不同,在实现方式上也有一些小的区别,将在下面详细介绍。关于对c/s系统集成的支持,在portal502中提供了简单的解决方案。基本的思想是通过Portlet加载applet,在applet中执行本地命令,打开客户端软件,并传入需要的用户身份参数信息,具体使用方式在下面详细介绍。三、 API介绍UAP-Portal 单点登录是UAP-Portal集成其它系统的框架和工具,UAP-Portal里的SSO在实现多个系统单点登录的功能上进行了扩展:可以定义单点登录的用户来源user provider(可以是任何支持的数据来源)。因此,在具体实现与UAP-Portal的集成过程中,需要注意和实现两个关键点,即:用户资料来源和单点集成。用户资料来源有专门章节介绍,此处对单点集成进行详细介绍。 当第三方系统与Portal进行集成时,必须实现Portal的单点集成接口:IWebAppLoginService。该接口负责完成生成凭证的过程、定制生成凭证所需要用户提供的信息域以及提供用户登录时的转向URL。在提供转向URL时需要根据第三方系统的需要进行必要的用户认证。IWebAppFunNodesService是可选的集成接口,用来集成第三方系统的功能节点.该接口负责输出当前系统的功能节点分类,功能节点列表以及当前用户的快捷方式。图2 单点登录相关接口UAP-Portal的单点登录,都是以Portlet的形式存在的。其中WebApplicationPortlet是实现单点登录的Portlet,它用于对第三方系统的集成,如对NC系统的集成就是采用这种Portlet。 WebApplicationPortlet是个通用的登录集成Portlet,通过调用配置文件指定的IWebApploginService实现来完成具体的应用系统集成,该portlet的view模式作系统展现,edit模式进行credential制作(如录入用户名,密码等被集成方需要的登录信息)。界面做成通用的登陆集成UI,具体应用系统通过实现IWebAppLoginService来完成具体应用系统的集成。IWebAppLoginService提供了集成第三方系统的关键接入点,由完成了对第三方系统集成的整个过程需要的信息的获取。四、 表单集成开发过程如下:1、 配置系统系统管理 应用平台管理 门户配置 单点登录设置 点击新增其中值得注意的是网关地址是登录后的默认主界面.授权类是egrate.impl.IntegrationLoginWithForm.点击确定.系统建立完毕.2、 配置属性选中建立的系统.点设置属性.新增如下属性system_code :系统编码相同success_sign :登录成功标志failure_sign : 登录失败标志registryUrl : 提交登录信息的地址useridfield_id : 用户ID名称 注意: useridfield_xxx部分标记的是提交的input的真实值,配置值里面的是显示名称 passwdfield_id : 密码名称field_aa : 附加信息(aa是input的名称,配置值对应发送给registryUrl的值)3、 实例下面以JIRA系统为例介绍一下集成的过程在浏览器中打开要集成的JIRA系统.如97:8080/secure/Dashboard.jspa,下载Fiddler工具并打开.在集成系统上输入用户名密码.点击登录;可以看到Fiddler工具上有一些记录。选中.可以看到我们需要的信息都已经获取到了.根据Fiddler上获得的信息,我们得到了下面的配置.保存即可.在布局管理中创建一个布局.将系统集成-表单集成Portlet拖到布局中.在布局管理中展开创建的布局.选中表单集成Portlet.点击高级设置.选择系统编码网关地址是可选项,如果设置了网关地址,会将用户名密码提交到新的网关中.可以用来实现默认显示不同页面.(需要第三方系统进行二次开发.)五、 LFW集成使用LFW开发的系统,如果单独部署,也可以很方便的集成到门户中.与其他系统类似,需要配置一个授权类.门户预置了一个默认的LFW系统集成类egrate.system.LfwWebAppLogin.想让此授权类工作,需要配置注册URL(registrUrl),数据源名称(dsname)及登出地址.如下图:注意:数据源名称指的的被集成系统现在使用的数据源的id.六、 NC6集成门户预置了对NC6产品的集成模板.配置时直接对模板进行修改即可.配置方式1. 将Portal的IP地址添加到NC的信任IP中.编辑NCHOME/ ierp/sf/ ssoConfig.xml,将中增加一个行Portal的IP地址.重启NC中间件.2. 修改集成模板.在单点登录中选NC.然后里面的与地址有关的都输入NC的地址.AccountCode项目输入NC系统的帐套编码3. 新建布局. 打开系统管理 应用平台管理 门户配置 布局管理 ,新建一个布局,然后选择集成portlet. 保存后展开布局,选中集成Portlet,点击高级设置中,系统编码选中刚才配置的NC系统.七、 NC5.7 集成门户预置了对NC5.7产品的集成模板.配置时直接对模板进行修改即可.配置方式:1:将Portal的IP地址添加到nc57的信任IP中.在nc57/nchomeierp/bin目录下,修改exterior.xml 在这行下面再添加一行Portal的IP地址.2:Nc60环境中添加57数据源. 即直接添加一个nc57环境使用的数据库作为一个数据源.,我们这标记新建的数据源为dsname1.注意要保留60的数据源,添加数据源在ncSysConfig.bat里

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论