收藏 分享(赏)

第三方portal与NC集成方案.doc

上传人:dzzj200808 文档编号:4056855 上传时间:2018-12-06 格式:DOC 页数:9 大小:43.50KB
下载 相关 举报
第三方portal与NC集成方案.doc_第1页
第1页 / 共9页
第三方portal与NC集成方案.doc_第2页
第2页 / 共9页
第三方portal与NC集成方案.doc_第3页
第3页 / 共9页
第三方portal与NC集成方案.doc_第4页
第4页 / 共9页
第三方portal与NC集成方案.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、第一章 单点登录方案(V5)1. 概述登录方案示意图如下:2. 过程说明1. 当客户端用户希望进入NC 系统时,首先向外部的认证系统提交请求。2. 由外部认证系统向 nc服务器注册客户端的登录信息,这些信息是nc 系统所必需的信息。可以通过 一个随机的键值 key来索引登录信息。3. 客户端将通过该键值来进入 nc 系统。即客户端将向 nc 应用服务器提交其键值。nc 服务器将利用该键值从注册中心中获取登录信息(同时注销注册信息) 。然后利用这些登录信息登录到 NC系统。4. 超时处理:注册的登录信息有其生命期,超过生命期的注册信息将会被清除。客户端只能在超时以前登录 nc 才有效,否则不能进

2、入 nc 系统。超时的值在配置文件中进行配置外部身份认证系统客户端NC 应用服务器注册中心1登录请求2向 nc服务器注册登录信息3,利用注册信息,客户端进入NC 系统超时处理3. URL 格式1 注册用的 URL外部系统服务器利用此url 向 nc 服务器注册登录信息。该 URL 的基本格式为:http:/localhost/service/RegisterServlet?key=111111其中:myNC 为对象实例,用户可以根据自己的需要命名。ncIP 为 NC 应用服务器地址。ncPort 为 NC 服务器的访问端口。Portal用友ERP系统JavaScriptNC JavaScrip

3、t 对象2登录。在需要使用NCApplet 的地方进行登录操作,登录函数为:result = myNC.login(accountName,corpCode,userCode,userPassword,bussiDate)其中:myNC:前面实例化的 NCApplet 对象accountCode:帐套名称corpCode:公司编码userCode:用户编码userPassword:用户密码bussiDate:业务日期result:NCApplet 返回值,如果成功返回 true,否则返回 false以简体中文作为默认语言登录用户名和用户密码为必输项,用户密码传递采用密文方式。刘俊松介绍目前ER

4、P系统和 Portal 系统已经实现用户编码、口令统一,NC 控件可以直接对该密文口令进行验证。 目前系统中只有一个账套,如果 Portal 系统不传递账套信息,则默认为该账套。如果登录日期不传递,则默认为当前的操作系统日期。如果登录单位不指定,则默认登录用户所属单位。3打开业务节点。登录成功之后,可以进行节点打开操作result = myNC.openNode(nodeCode)其中:myNC:前面实例化的 NCApplet 对象nodeCode:节点编号。result:NCApplet 返回值,如果成功返回 true,否则返回 false注:必须登录成功之后才允许进行打开节点操作。NC 控

5、件验证当前用户是否具有打开该节点的权限。4设置 NC 是否可见myNC.setVisible(visible)其中:myNC:前面实例化的 NCApplet 对象visible:确认是否显示 NC 的参数,取值范围 true、false.5设置是否显示待办事务myNC.setBussinessVisible(visible)其中:myNC:前面实例化的 NCApplet 对象visible:是否显示待办事务,取值范围 true、false.用户选中待处理事务打开后,弹出相应的处理界面。6读取待办事务信息business = myNC.readBussiness()其中:myNC:前面实例化的

6、NCApplet 对象business:返回结果,以数组形式返回。7执行待办事务result = myNC.executeBussiness(bussiness)其中:myNC:前面实例化的 NCApplet 对象business:要执行的待办事务数据 3、调用的例子1. Portal 部分调用打开节点: 100401100402100404myNC = new NCApplet(“127.0.0.1“,80);说明:蓝色部分为对 NCApplet 的调用部分2NCApplet.js 内容框架function NCApplet(ncIP,ncPort)NCApplet.port = ncPor

7、t;NCApplet.IP = ncIP;_display();this.login = function(accountCode,unitCode,userCode,loginDate)/在公有成员中调用私有方法_login(accountCode,unitCode,userCode,loginDate); this.openNode = function(funccode)/在公有成员中调用私有方法_openNode(funccode); this.logout = function()/在公有成员中调用私有方法logout();/完成 NCApplet的加载、显示。说明:以下代码用于方案

8、说明,正式提交系统运行代码为 Servlet,由 Servlet 根据用户请求生成 NCApplet 脚本。function _display()document.write(“开始加载 NCApplet“);document.write(NC 服务器IP:+NCApplet.IP+);document.write(NC 服务器端口:+NCApplet.port+);document.write();document.write();document.write();document.write();document.write();document.write();document.writ

9、e();document.write();document.write();document.write();document.write();document.write( );document.write();document.write();document.write();document.write();document.write();document.write();document.write();document.write();document.write();document.write();document.write();document.write();docume

10、nt.write( );。 。 。 。 。 。;document.write();document.write(“加载结束!“);/登录 NC ERPfunction _login(accountCode,unitCode,userCode,loginDate)alert(“ login“);result = document.applets“NCApplet“.login(accountCode,unitCode,userCode,loginDate);alert(“end login result “+result);/登出 NC ERPfunction _logout()alert(“l

11、ogin“);result = document.applets“NCApplet“.logout();alert(“end login result“+result);/打开 NC 节点function _openNode(funcCode)alert(“opening“);result = document.applets“NCApplet“.openNode(funcCode);alert(“open result“+result);4、NC 部分相关的调整方案NC 部分的调整是本次调整的主要难点,NCApplet 控件需要接管 NC 系统登录、NC 节点打开、NC 待办事务、NC 日志

12、等操作的控制。这些内容是NC 系统管理的核心部分,也是最为复杂的部分之一,调整部分必须遵循原始代码的内在协议,不破坏已有代码的准确性。为了维持已有功能的稳定性、可靠性。原则上不对现有的 NC代码进行任何改动,新增功能通过重新增加相应的业务类实现。新的业务类可以继承原有的代码。对于新增代码的逻辑关系、业务流程重新组织。基于以上的原则,这次整合的一个基本方式是:新增加类 SimpleApplet 继承 AppletContainer 主控Applet,接管界面显示,跳过登录界面的加载。将主界面空置,以便按照客户要求显示相关的内容。跳过对 NC主控制桌面的加载、显示。由于负责 NC 节点控制的类 M

13、ainFrame 对主控桌面类Desktop 具有较强刚性依赖关系,因此,重新按照 MainFrame 的思想开发一个NCMainFram e 类,用来控制从NCApp let 控件中的打开节点、执行待办事务等操作。由于 NC 的部分初始化工作是在 Desktop 中完成,在 NCApplet 中直接重写相应的初始化。在 NCApplet 中增加对外的公开业务接口,以满足 JavaScrip 调用需要。该部分内容目前直接在NCApplet 中实现,今后需要改为专门的二次开发接口实现方案,以便新的业务方法扩展。开发一个用于 NCApplet.js 调用的 HTTPServlet 以便根据NC 服

14、务器的具体信息形成NCApplet的正确参数配置。如果可能,尽量将整个NCApplet.js 由新开发的 HTTPServlet 形成。如果这样,Portal 部分在引用 NCApplet.js 时需要改为对该 Servlet 引用,可能形式如下7. 各个节点对于主控部分具有一定的依赖关系,而这些依赖关系又比较隐蔽,许多是通过getParamet er(String paraName)方法或 System.getProperty(String paraName)对主控预置信息进行访问。这对整个的整合工作带来了巨大的考验。如果主控部分对预置数据设置不合理,或未设置,问题只有在系统运行时才会暴露出来,而各个节点对所依赖的预置数据由各不相同。这对于整个的整合工作是一个巨大的挑战。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 解决方案

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报