页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

用户管理模块是 Smartbi 产品线中一个独立的模块,Smartbi 系列的所有子产品均使用该模块进行用户管理和权限验证。

同时由于其独立性,该模块也可以独立出来给外部其它系统使用或实现与 Smartbi 产品的集成。下文主要介绍如何在外部系统中调用 Smartbi 用户管理模块。

 

面板
borderColor#BBBBBB
bgColor#F0F0F0
borderWidth1
borderStylesolid
文档目录:

目录

 

_用户管理模块功能概述
_用户管理模块功能概述
_Toc319507177
_Toc319507177
_Toc321489200
_Toc321489200
1、用户管理模块功能概述

1.1 说明

  • 用户管理模块采用 B/S 架构实现。
    • 服务器端使用 Java 技术,可以在支持Servlet的Web 服务器中部署运行;
    • 浏览器端采用 Ajax 技术,除了拥有传统 B/S 架构应用的易于部署特点,还能够提供桌面应用,做到最佳用户体验。
  • 用户管理模块的功能主要分四大部分:用户管理、组管理、角色管理、操作权限管理。
    • 用户管理:包括新建用户、编辑用户、删除用户、修改用户所属组、用户查找。用户通过修改用户所属组可以修改其所属组;用户查找可以对用户进行名称、别名搜索。
    • 组管理:包括新建组、编辑组、删除组。
    • 角色管理:包括新建角色、编辑角色、删除角色、修改角色用户、操作授权(对角色进行授权)。修改角色用户可以增加或减少某角色拥有的用户;操作授权可以把权限赋给某个角色,使角色拥有不同的权限。
    • 操作权限管理:包括新建权限、编辑权限、删除权限。

 

_Toc206857838
_Toc206857838
_Toc207987511
_Toc207987511
_Toc215849416
_Toc215849416
1.2 权限体系

  • 用户权限体系如下图所示:

  • Smartbi 用户管理模块通过对角色进行操作权限和资源权限授权,再而将角色赋予给用户或组从而达到最终授权的目的。
  • 用户可以属于多个组,拥有多个角色,默认继承组的角色。同时也可以将某个资源的权限赋给用户。
  • Smartbi 用户管理模块定义了子系统概念,用户管理模块可以被多个系统集成,每个子系统具有各自的系统 ID,子系统的用户、组是所有系统公共的,而角色、操作权限每个系统不一样,即每个子系统拥有相同的组和用户,子系统可以根据需要定制本系统的角色和操作权限。一个用户可以登录所有的系统,但在每个系统中的角色和操作权限是不一样的,即用户或组在不同的子系统中可以拥有完全不同的、独立的角色和操作权限。

_在第三方系统集成BI.Office用户管理模块
_在第三方系统集成BI.Office用户管理模块
_Toc319507178
_Toc319507178
_Toc321489201
_Toc321489201
2、在第三方系统集成Smartbi用户管理模块

2.1 说明

  • 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 等。

_Toc207987521
_Toc207987521
_Toc215849423
_Toc215849423
2.2 用户属性集成

2.2.1 扩展用户属性

  1. 系统运维->系统选项->用户管理设置->用户扩展属性->设置
  2. 添加用户扩展属性
  3. 清空缓存,重新进入用户管理,随便对一个用户进行设置,就可以见到刚刚添加的用户扩展属性

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

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

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

代码块
languagesql
linenumberstrue
SELECT * FROM t_systemconfig where c_key = "USER_EXTEND_SETTING";

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

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

2.2.3

通过服务器端SKD

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

2.2.3.1 读取用户扩展属性结构

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

代码块
languagejava
linenumberstrue
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.2.3.2 修改、读取用户属性值

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

代码块
languagejava
linenumberstrue
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();
 

 

 

_使用BI.Office用户管理作为统一用户管理平台
_使用BI.Office用户管理作为统一用户管理平台
_Toc319507179
_Toc319507179
_Toc321489202
_Toc321489202

3、使用Smartbi用户管理作为统一用户管理平台 _Toc207987526_Toc207987526 _Toc215849428_Toc2158494283.1 说明
  • 第三方系统自身无用户管理,或者有用户管理但该系统需要与 Smartbi 产品实现系统集成(统一管理用户),并以 Smartbi 作为统一用户管理平台。
  • 这种情况下,Smartbi产品的用户管理模块是管理用户、用户组、角色的主体,第三方系统参照 Smartbi 的用户管理模块来进行验证,用户、用户组、角色的信息等通过后台方式同步到第三方系统的知识库中。

    3.2 实现步骤

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

     

     

    1. 用户管理模块是 Smartbi 产品线中一个独立的模块,Smartbi 系列的所有子产品均使用该模块进行用户管理和权限验证。

    同时由于其独立性,该模块也可以独立出来给外部其它系统使用或实现与 Smartbi 产品的集成。下文主要介绍如何在外部系统中调用 Smartbi 用户管理模块。

     

    面板
    borderColor#BBBBBB
    bgColor#F0F0F0
    borderWidth1
    borderStylesolid
    文档目录:

    目录

     

    _用户管理模块功能概述_用户管理模块功能概述 _Toc319507177_Toc319507177 _Toc321489200_Toc3214892001、用户管理模块功能概述

    1.1 说明

    • 用户管理模块采用 B/S 架构实现。
      • 服务器端使用 Java 技术,可以在支持Servlet的Web 服务器中部署运行;
      • 浏览器端采用 Ajax 技术,除了拥有传统 B/S 架构应用的易于部署特点,还能够提供桌面应用,做到最佳用户体验。
    • 用户管理模块的功能主要分四大部分:用户管理、组管理、角色管理、操作权限管理。
      • 用户管理:包括新建用户、编辑用户、删除用户、修改用户所属组、用户查找。用户通过修改用户所属组可以修改其所属组;用户查找可以对用户进行名称、别名搜索。
      • 组管理:包括新建组、编辑组、删除组。
      • 角色管理:包括新建角色、编辑角色、删除角色、修改角色用户、操作授权(对角色进行授权)。修改角色用户可以增加或减少某角色拥有的用户;操作授权可以把权限赋给某个角色,使角色拥有不同的权限。
      • 操作权限管理:包括新建权限、编辑权限、删除权限。

     

    _Toc206857838_Toc206857838 _Toc207987511_Toc207987511 _Toc215849416_Toc2158494161.2 权限体系
    • 用户权限体系如下图所示:

    Image Removed

  • Smartbi 用户管理模块通过对角色进行操作权限和资源权限授权,再而将角色赋予给用户或组从而达到最终授权的目的。
  • 用户可以属于多个组,拥有多个角色,默认继承组的角色。同时也可以将某个资源的权限赋给用户。
  • Smartbi 用户管理模块定义了子系统概念,用户管理模块可以被多个系统集成,每个子系统具有各自的系统 ID,子系统的用户、组是所有系统公共的,而角色、操作权限每个系统不一样,即每个子系统拥有相同的组和用户,子系统可以根据需要定制本系统的角色和操作权限。一个用户可以登录所有的系统,但在每个系统中的角色和操作权限是不一样的,即用户或组在不同的子系统中可以拥有完全不同的、独立的角色和操作权限。
    _在第三方系统集成BI.Office用户管理模块_在第三方系统集成BI.Office用户管理模块 _Toc319507178_Toc319507178 _Toc321489201_Toc3214892012、在第三方系统集成Smartbi用户管理模块

    2.1 说明

  • Smartbi 用户管理模块在Web Server上部署,客户端通过IE访问,对用户、角色等进行管理。
  • 环境要求:
  • 软件要求:JDK 1.6 或以上,IE11;
  • 支持的服务器类型有:Tomcat 5.5、Weblogic 9.*、WebSphere 6、Jboss 4.13 等。
  • 支持的数据库类型有:MySQL、SQL Server、Oracle、DB2、HSQL 等。

    2.2 实现步骤

    • 下面以Tomcat 5.5 服务器为例,介绍如何在项目中安装部署 Smartbi 用户管理模块。

    1、前提条件,假设Tomcat服务器已安装好,并可正常使用。

    2、配置知识库,用户管理模块需要配置一个数据库作为存储用户等信息的知识库。

      1. 请使用者手工配置一个空数据库,并根据实际情况修改配置文件。在一切准备就绪,即可启动服务器,用户管理模块会自动创建所需要使用的表。
      2. 知识库信息在应用程序包 UserManager.war\WEB-INF\smartbi-config.xml文件中配置,信息说明如下:

    Image Removed

    注:用户管理模块默认配置的是 MySQL 知识库,并已自带 MySQL 的 JDBC 驱动程序;如果使用其它类型的知识库,请按照实际情况更改配置文件,并将该类型的数据库的 JDBC 驱动程序拷贝到 UserManager.war\WEB-INF\lib 目录下,推荐使用类似_JDBC_mysql.jar的形式命名JDBC驱动文件。

    3、将UserManager.war包拷贝到 \Tomcat 5.5.20\webapps 目录下;

    4、启动Tomcat,访问 http://server:port/UserManager/vision/ 即可。初始用户名和密码为:admin/manager。

    5、在第三方系统程序中通过IFrame访问 http://server:port/UserManager/vision/index.jsp 页面,并传递用户名、密码等参数过去,即可实现将用户管理模块嵌入到第三方系统中。

     

    2.3 注意事项

    Smartbi 用户管理适用于多个系统,即多个系统可以使用统一的用户管理系统,此时,多个系统的拥有相同的用户、组,而角色和操作权限是不同的。当用户登录时,通过其系统ID区分其属于哪个系统。子系统通过IFrame访问用户管理系统时,除了需要用户名、密码外,还需要传入系统ID,通过系统ID读取此用户拥有的角色与操作权限,登陆方法请调用loginFor方法。
    _Toc207987521_Toc207987521 _Toc215849423_Toc2158494232.4 用户扩展属性的添加与集成

    2.4.1 扩展用户属性

    1. 系统运维->系统选项->用户管理设置->用户扩展属性->设置
      Image Removed
    2. 添加用户扩展属性
      Image Removed
    3. 清空缓存,重新进入用户管理,随便对一个用户进行设置,就可以见到刚刚添加的用户扩展属性Image Removed

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

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

    代码块
    languagesql
    linenumberstrue
    SELECT * FROM t_systemconfig where c_key = "USER_EXTEND_SETTING";

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

    Image Removed

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

    2.4.3 通过服务器端SKD API对用户扩展属性进行读取

    通过 

    smartbi.sdk.service.systemconfig

     

     

     

    _使用BI.Office用户管理作为统一用户管理平台_使用BI.Office用户管理作为统一用户管理平台 _Toc319507179_Toc319507179 _Toc321489202_Toc3214892023、使用Smartbi用户管理作为统一用户管理平台 _Toc207987526_Toc207987526 _Toc215849428_Toc2158494283.1 说明
  • 第三方系统自身无用户管理,或者有用户管理但该系统需要与 Smartbi 产品实现系统集成(统一管理用户),并以 Smartbi 作为统一用户管理平台。
  • 这种情况下,Smartbi产品的用户管理模块是管理用户、用户组、角色的主体,第三方系统参照 Smartbi 的用户管理模块来进行验证,用户、用户组、角色的信息等通过后台方式同步到第三方系统的知识库中。

    3.2 实现步骤

    假设Smartbi服务器已经部署到应用服务器中,访问地址为:http://biserver:port/smartbi/vision; 或者是单独的用户管理模块应用包UserManager.war已部署到应用服务器中,访问地址为http://server:port/UserManager/vision/;

    3、Smartbi用户同步到第三方系统

    3.1 实现步骤

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