FineReport和泛微OA(Ecology)的单点登录集成方案

简介:

最近出现了很多关于帆软报表和泛微OA的集成问题,均出现在“单点登录”上。直接也有相关的文章介绍一些FineReport和泛微集成的背景、价值等,以及FineReport和OA的深度集成的方案,但是并没有提到单点登录的集成方案,今天就简单介绍下FineReport和OA单点登录集成方式。

同步用户信息

单点登录的基础,就是用户信息的同步,FineReport的决策系统中有一个很强大的功能,可以自动帮助用户实现用户信息同步。具体菜单:决策系统-管理系统-用户管理。点击用户管理菜单后,右侧页面右上角有一个“设置”按钮,如下图:


点击“设置”,则会出现如下图的界面。按照下图中的配置进行对应的配置。


认证方式:选择平台内置认证。单点登录的集成是通过平台内置认证进行集成的。

用户同步数据集:选择“已开启”

服务器数据集:服务器数据集是需要去帆软报表的开发工具上进行配置。如下图:


 

进入设计器,点击菜单服务器-服务器数据集,新增一个数据集,选择OA的数据源,写入SQL“select * from hrmresource”,保存即可。

保存后,需要去本地的开发环境上找到对应的xml,复制到决策系统服务器端,才可使用。本地开发环境的xml路径见上图“保存路径”后面的对应文件路径。

通过EditPlus编辑器打开datasource.xml文件后,找到“OA用户”这块xml代码。将这块代码复制到服务器上的datasource.xml上,路径和/WebReport/WEB-INF/resourcr/datasource.xml,粘贴格式参见本地的开发环境。如下图:

 

注:不要用记事本打开xml,保存可能会损坏xml。更新服务器文件时,做好备份。

继续配置用户同步

用户名:XXX

姓名:XXX

密码:XXX,注意,OA的密码已经进行了32位大写的MD5加密。

加密方式:不设置密码加密

其他选填。

点击保存,OK,决策系统已经开始在后台执行了用户同步了。只需要在决策系统中的用户管理上查看同步的用户信息结果即可。

泛微OA的登录方式和如何编写单点登录

了解单点登录之前,先了解下OA的登录方式。泛微OA的登录方式有2种。第一种,是通过页面登录进OA;第二种是,是通过E-Message上的快捷方式进入到OA。

这样的话,如果实现FineReport和泛微OA集成的单点登录,以上的两种登录方式均瑶实现这个效果。很多用户和泛微的实施团队会在OA的login.jsp上编写单点登录代码。在login.jsp上编写单点登录代码智能解决第一种登录方式“通过页面登录进OA”。而通过E-Message上的快捷方式进入到OA是不能实现帆软决策系统的单点登录的。如果要实现两种登录方式的单点登录,可以在泛微OA登录后页面上编写单点登录代码。泛微OA登录后页面的jsp为“/ecology/wui/theme/ecology7/page/main.jsp”。

第一步,引入js代码:

1
<script type= "text/javascript"  src= "http://***.***.***.***:**/WebReport/ReportServer?op=emb&resource=finereport.js" ></script>

 


第二步,获取当前用户的登录名和密码的java代码:

1
2
3
4
5
6
String nodeSql = "select loginid,password from HrmResource where id =  "  + user.getUID();  
         RecordSet.executeSql(nodeSql);  
         if  (RecordSet.next()){  
                 userpasswordstr = RecordSet.getString( "password" );       
                 loginidstr = RecordSet.getString( "loginid" );  
         }

从上面的代码可以很明显的看到,这个和sql和rs的取值字段跟之前配置用户同步信息对应的表和字段是一样的。

第三步,编写js代码:

1
2
3
4
5
var  username =FR.cjkEncode( "<%=loginidstr%>" );    
var  password = "<%=userpasswordstr%>" ;  
password = password.toUpperCase(); //把密码小写字母转换成大写字母  
var  scr = document.createElement( "iframe" );                  
scr.src =  "http://***.***.***.***:**/WebReport/ReportServer?op=touchfs&username=" +username+ "&__redirect__=false&password=" +password;

这里是采用iframe的跨域单点登录方式,所以在JS中需要创建一个iframe,然后在iframe上设置SRC。

第四步,保存main.jsp,备份服务器的main.jsp,更新main.jsp。

第五步,重新登录OA,单点登录成功。校验方式,在OA的浏览器上,新建一个页签,输入“http://***.***.***.***:**/WebReport/ReportServer?op=fs”,如果出现如下图,且登录名为自己的用户,则表示单点登录成功。但是。。。还没完。


在泛微OA上配置决策系统入口

完成了上述的配置,但是OA用户通过什么方式进入决策平台呢?提供2个方式供参考。

第一,用系统管理员配置自定义左侧菜单。

第二,设置用户元素。

以上3点完成后,FineReport和OA的集成工作就大功告成了。



本文转自 雄霸天下啦 51CTO博客,原文链接:http://blog.51cto.com/10549520/1892650,如需转载请自行联系原作者

相关文章
|
1月前
|
缓存 分布式计算 Apache
Apache Hudi与Apache Flink更好地集成,最新方案了解下?
Apache Hudi与Apache Flink更好地集成,最新方案了解下?
59 0
|
3月前
|
SQL 关系型数据库 MySQL
基于 Flink CDC 打造企业级实时数据集成方案
基于 Flink CDC 打造企业级实时数据集成方案
|
4月前
|
消息中间件 关系型数据库 MySQL
Kafka Connect :构建强大分布式数据集成方案
Kafka Connect 是 Apache Kafka 生态系统中的关键组件,专为构建可靠、高效的分布式数据集成解决方案而设计。本文将深入探讨 Kafka Connect 的核心架构、使用方法以及如何通过丰富的示例代码解决实际的数据集成挑战。
|
4月前
|
设计模式 缓存 Java
干翻Mybatis源码系列之第七篇:Mybatis提供的集成缓存方案
干翻Mybatis源码系列之第七篇:Mybatis提供的集成缓存方案
|
4月前
|
SQL 关系型数据库 MySQL
基于 Flink CDC 打造企业级实时数据集成方案
阿里云智能 Flink 数据通道负责人,Flink CDC 开源社区负责人,Flink PMC Member & Committer 徐榜江在 2023 云栖大会开源大数据专场的分享。
58294 11
基于 Flink CDC 打造企业级实时数据集成方案
|
4月前
|
移动开发 数据安全/隐私保护
钉钉可以集成企业内网部署的网盘系统实现账号单点登录吗?
最近接到客户的咨询,他们近期在公司局域网里部署了一套文档管理系统(一般叫私有网盘),领导希望平时通过手机钉钉就能访问到这套系统。客户就有些为难,钉钉是部署在公有云互联网环境的,而这套文档管理系统是部署在企业内网的,看上去应该打通不了,于是前来求助。
118 1
|
5月前
淘东电商项目(34) -SSO单点登录(Client端集成)
淘东电商项目(34) -SSO单点登录(Client端集成)
32 0
|
5月前
|
Java Maven
淘东电商项目(32) -SSO单点登录(集成SSO认证服务)
淘东电商项目(32) -SSO单点登录(集成SSO认证服务)
42 0
|
7月前
|
Kubernetes Cloud Native API
一种基于事件驱动架构的 SAP 产品集成方案介绍
一种基于事件驱动架构的 SAP 产品集成方案介绍
84 1
|
9月前
|
前端开发 搜索推荐 JavaScript
SpringBoot静态资源访问控制和封装集成方案
最近在着手公司框架优化及项目实际应用,原先方案是springboot+html前后端分离单独部署,后端人员兼职前端开发,后续产品线业务进行优化,面向企业使用部分由移动网站人员负责设计开发,内部配置后台管理还是由后端负责,随着框架不停迭代与使用的项目越来越多,项目升级框架变得十分麻烦,后端部分可以通过maven私服进行版本迭代,后台管理页面升级则需要进行各个项目拷贝,所以决定对框架进行整合,将后台管理页面与框架后端代码进行整合发布。
54 0