Smartbi Insight V10帮助中心
页面树结构
跳到banner的尾部
回到标题开始

第三方系统如何接入Smartbi相关功能?

转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 5 下一个 »

Smartbi 与第三方系统相互集成过程中,通常需要由第三方系统接管某些 Smartbi 的功能,比如用户的登录验证需要由第三方统一认证平台完成、需要将 Smartbi 的资源同步到第三方系统、由第三方系统进行资源权限以及操作权限的验证等。上述需求,将通过如下方法实现。

接管的方式

第三方系统接管 Smartbi 的功能,实现方式是相同的,都是由第三方系统开发相关 Java 类实现 Smartbi 指定的接口,然后在 Smartbi 中进行配置使用该 Java 类。Smartbi 会在相关的扩展点处调用第三方 Java 类,从而达到让第三方系统接管相关功能的目的。对于每一种功能接管,具体操作步骤如下。

  1. 参考“ 插件开发框架”,开发一个项目扩展包。
  2. 在扩展包项目中新建一个Java类 com.mycomp.MyXxxClass,并且实现接口 smartbi.xxx.IXxxInterface。
  3. 在 Smartbi 中进行配置,使用前一步开发的类 com.mycomp.MyXxxClass。
  4. 参考“ 扩展包部署”文档,部署该项目扩展包。
  5. 此后 Smartbi 会在相关的扩展点处调用 com.mycomp.MyXxxClass类,从而让第三方系统接管相关功能。

同步Smartbi资源树信息到第三方系统中

说明

如果在项目中使用第三方系统的权限验证,很可能也需要同步 Smartbi 资源树信息到第三方系统中以配合权限验证,即每当Smartbi中的资源树发生变化就通知第三方系统及时更新。

实现步骤

1、在扩展包中新建一个Java类com.func.takeover.catalogtree.TreeSyncDemo,并且实现接口smartbi.catalogtree.ICatalogTreeListener。

2、配置新建的Java类,方式有如下两种:

(1)在扩展包中新建Module类,具体请参考wiki文档: 自定义Module 或者参考下面的示例扩展包。在Module类的active方法中使用该段代码((CatalogTreeModule)catalogTreeModule).addCatalogTreeListener(new TreeSyncDemo());配置。

(2)编辑 Smartbi 服务器配置文件smartbi-config.xml,如下图红色框所示。在已有节点catalogtree下面新增子节点catalog-tree-listener,其属性为TreeSyncDemo类的全名com.func.takeover.catalogtree.TreeSyncDemo。

3、gif演示示例的源码请参考: 资源树同步.rar

操作日志重定向

说明

如果在项目中要统一管理操作日志,有可能需要将 Smartbi 的操作日志按指定的形式输出到指定的地方。

实现步骤

1、在扩展包中新建一个Java类com.log.takeover.log.LogSyncDemo,并且实现接口 smartbi.repository.IOperationLogReceiver。

2、编辑Smartbi服务器配置文件smartbi-config.xml,如下图红色框所示。在已有节点smartbi下面新增子节点operationlog,接着在节点operationlog下新增子节点preserver-class,其属性值为 LogSyncDemo 类的全名 com.log.takeover.log.LogSyncDemo。

3、gif演示示例的源码请参考: 操作日志重定向.rar

 

使用第三方系统用户管理

第三方系统的用户管理能够包含 Smartbi 用户管理中的所有语义(用户组、角色、用户及其相应关系等),并且资源权限也希望由第三方系统统一管理,则可以屏蔽 Smartbi 的用户管理模块而使用第三方系统的用户管理作为统一用户管理平台。以下将介绍如何在外部系统中调用 Smartbi 用户管理模块。

用户管理模块功能概述

详情请参考wiki: 用户管理 目录下的用户管理章节和权限管理章节。

在第三方系统集成Smartbi用户管理模块

说明

  • Smartbi 用户管理模块集成在Smartbi中,客户端通过IE访问,对用户、角色等进行管理。部署并启动Smartbi后,在第三方系统中通过本章后面的方法即可对用户管理模块进行访问。
  • 在第三方系统程序中通过IFrame访问  http://server:port/smartbi/vision/index.jsp 页面,并传递用户名、密码等参数过去,即可实现将用户管理模块嵌入到第三方系统中。
  • 环境要求:
    • 软件要求:JDK 1.6 或以上,IE11;
    • 支持的服务器类型有:Tomcat 5.5、Weblogic 9.*、WebSphere 6、Jboss 4.13 等。
    • 支持的数据库类型有:MySQL、SQL Server、Oracle、DB2、HSQL 等。

用户属性集成

用户属性继承有三种方式,第一种是在使用iframe集成Smartbi的用户管理模块,直接在iframe中管理用户属性,第二种是直接操作用户属性对应的数据库表,第三种是通过服务器端SDK API管理用户属性。

1、在集成的用户管理模块中增加用户扩展属性

根据以上步骤使用iframe在第三方系统中集成了用户管理模块后,可以在第三方系统中增加用户扩展属性,具体步骤如下:

(1)在系统运维 > 系统选项 > 用户管理设置 > 用户扩展属性 > 设置中

(2)添加用户扩展属性

(3)清空缓存,重新进入用户管理,对任意一个用户进行设置,就可以看到刚刚添加的用户扩展属性

2、直接通过知识库以对用户扩展属性进行修改

用户扩展属性,定义在知识库的 t_systemconfig 表中,在其中 c_key 为 USER_EXTEND_SETTING 的行中,通过 c_long 列,以JSON形式定义。

可通过下面的语句查询到该行数据:

SELECT * FROM t_systemconfig where c_key = "USER_EXTEND_SETTING";

如配置了前面的用户扩展属性后,查询结果可能为:

修改 c_long 下的JSON即可对用户扩展属性进行修改。

3、通过服务器端SDK API对用户扩展属性进行读取

1)读取用户扩展属性结构

通过 smartbi.sdk.service.systemconfig.SystemConfigService 可以对用户扩展属性的结构进行读取:

ClientConnector conn = new ClientConnector("http://localhost:18080/smartbi");
conn.open("admin", "manager");
SystemConfigService service = new SystemConfigService(conn);
SystemConfig config = service.getSystemConfig("USER_EXTEND_SETTING");
System.out.println(config);
conn.close();

结果形如:

key=USER_EXTEND_SETTING;value=;longValue=[{"name":"用户扩展属性1","alias":"","typeS":"文本框","valueLength":"100"}]

(2)修改、读取用户属性值

通过 smartbi.sdk.service.user.UserManagerService 可以对用户属性值进行读取、修改:

ClientConnector conn = new ClientConnector("http://localhost:18080/smartbi");
conn.open("admin", "admin");
UserManagerService service = new UserManagerService(conn);
service.updateUserAttribute("ADMIN", "用户扩展属性1", "ExampleValue", "");        // 修改用户属性
IExtensionAttribute attr = service.getUserAttribute("ADMIN", "用户扩展属性1");    // 读取用户属性
System.out.println(attr.getValue());
conn.close();

 

Smartbi用户同步到第三方系统

实现步骤

  1. 用户同步:通过额外的系统实现用户信息定时同步,有两种方式:
    • 方式一:使用存储过程或 ETL 定时将 Smartbi 中的用户等信息同步到外部系统中,Smartbi 的用户相关的表结构可参考  同步数据库相关用户表 。
    • 方式二:Smartbi用户管理模块提供事件通知机制,当新增或修改用户等信息时,可通知第三方系统同时更新信息。这个要求第三方系统提供有二次开发接口,实现步骤如下:
      1. 编写通知类***UserManagerNotifier.java,如ThirdPartUserManagerNotifier.java,实现 IUserManagerNotifier 接口,在该类中调用第三方系统的用户管理 API 方法,实现用户操作的同步。IUserManagerNotifier 的作用是当 Smartbi 的用户、组、角色变化时通知继承该接口的类进行相关操作。具体接口方法请参考用户管理变更通知类 API 文档。
      2. 重新启动服务器,即可生效。
  2. 用户验证:根据第三方系统的自身特征而定,可以使用其自身的用户验证,也可以通过Smartbi提供的二次开发接口使用 Smartbi 用户验证,可参考  使用第三方系统的用户验证

 

使用第三方系统的资源权限验证

实际项目中往往存在多个系统需要统一权限认证,客户要求将某个系统作为统一认证平台, Smartbi 为了应对这种需求,提供了一个可以根据需要扩充的资源权限验证方式,让项目能根据实际情况开发不同的需求。具体实现请参考: 使用第三方系统的资源权限验证。

使用第三方系统的操作权限验证

说明

不使用 Smartbi 系统自身的操作权限验证逻辑,而是由第三方系统进行操作权限验证,给 Smartbi 返回一个用户能否访问指定操作的状态指示。

实现步骤

1. 在扩展包中新建一个Java类 com.mycomp.usermanager.TestFunctionAuth,并且实现接口 smartbi.usermanager.IFunctionAuth。

package com.mycomp.usermanager;
 
public class TestFunctionAuth implements IFunctionAuth {
	private static TestFunctionAuth auth = new TestFunctionAuth();
	public static TestFunctionAuth getInstance() { 
		return auth; 
	} 
	private TestFunctionAuth() {
		// TestFunctionAuth
	} 
	public boolean isFuncTypeAccessible(String userId, String functionCode) { 
		// 在这里实现用户操作权限判断的逻辑,返回状态 true|false 指明用户能否访问指定操作
		return true; 
	}
}

 

2. 修改扩展包文件 applicationContext.xml 增加如下内容。

<bean id="usermanager" class="smartbi.usermanager.UserManagerModule" factory-method="getInstance">
	<property name="functionAuth" ref="TestFunctionAuth"/>
</bean>
<bean id="TestFunctionAuth" class="com.mycomp.usermanager.TestFunctionAuth" factory-method="getInstance"></bean>

  • 无标签

深圳坪山网站建设公司沁阳优化网站排名选哪家新乡营销网站快速排名优化技巧黄石品牌网站优化公司汉中网站优化价格专业网站关键词排名优化郑州网站关键词排名优化怎么样进行网站优化及营销方案福田区网站关键词优化济南网站优化哪家好贵州遵义优化网站建设城关区网站seo优化排名龙岩网站seo优化团队集宁网站关键词优化软件优化网站成立了多少年栖霞区公司网站优化哪里好怎样做好网站优化的方法金华优化网站关键词费用长沙网站优化排名优化一对一网站排名优化价格网站结构优化就是对网站的江门网站安全优化肇庆房地产网站优化公司实力强的网站关键词优化平台独立外贸网站优化的有效方式罗湖中文网站优化的主要方法扬州网站优化排名企业南平网站搜索优化上海网站排行优化快速优化网站纟云95速纟捷宁夏泰安网站优化公司排行榜香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化