来源:https://help.pentaho.com/Documentation/8.3/Developer_center/REST_API_Reference/User_Role_Management/0O0


以下介绍的Rest API用以PBA的安全用户&角色的管理:

  • 创建、删除用户角色
  • 给用户分配角色
  • 获得某角色下的用户列表
  • 给角色赋予权限
  • 修改用户密码

Pentaho Rest API的通用格式为:

[server path]/[rest path]/[query parameter]

调用API需进行pentaho认证,参考教程。本篇示例均以Basic Auth的认证方式实现。

1. Users

本章节列的Rest API与Pentaho用户有关。

1.1 创建用户

创建一个用户包括创建用户名和密码。此请求封装在具有用户名和密码值的user对象中,请注意创建用户不包括为其分配角色,若要分配角色需要建立另外的请求。
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

Http Verb Example Request
PUT PUT /pentaho/api/userroledao/createUser

参数

Name Description Type
user 用于传递userName和password的对象 query

Request Body

user对象传递userName&password的示例如下:

{"userName":"cloud","password":"zijin.Cloud"
}
Element Media Types
user */*
application/xml
application/octet-stream

Response Body

Response Body包含操作状态码

Element Media Types
(custom) */*
application/xml
application/octet-stream

状态码

Code Description
200* Successfully created new user(实际上是204,无返回内容)
400 Provided data has invalid format.
401 未认证
403 Only users with administrative privileges can access this method.
412 Unable to create user.

请求指令

curl   -d '{"userName":"viviran","password":"password"}' -H'Authorization:Basic YWRtaW46cGFzc3dvcmQ=' -H 'Content-Type:application/json' -X PUT http://localhost:8080/pentaho/api/userroledao/createUser

创建viviran的用户

1.2 删除用户

使用一个query parameter实现用户列表的删除,若要批量删除用户,userName以tab(\t)分隔.
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
PUT PUT pentaho/api/userroledao/deleteUsers?userNames=user1%09user2%09

参数

Name Description Type
userName 用户名列表以tab (\t)分隔 query

Request Body

Response Body

Response Body包含操作状态码

Element Media Types
(custom) */*
application/xml
application/octet-stream

状态码

Code Description
200* Successfully created new user(实际上是204,无返回内容)
401 未认证
403 Only users with administrative privileges can access this method.
500 Internal server error prevented the system from properly retrieving either the user or roles.

1.3 修改用户密码

修改信息封装在ChangeUserPassword对象:userName, newPassword, oldPassword.

支持方法

HTTP Verb Example Request
PUT PUT pentaho/api/userroledao/user

参数

Name Description Type
ChangePasswordUser 封装了需要修改的用户的用户名、旧密码、新密码字段 query

Request Body

ChangePasswordUser对象传递的示例如下:

{"userName":"cloud","newPassword":"cloud.Zijin","oldPassword":"zijin.Cloud"
}

Response Body

Response Body包含操作状态码

Element Media Types
(custom) */*
application/xml
application/octet-stream

状态码

Code Description
200* Successfully created new user(实际上是204,无返回内容)
400 Provided data has invalid format.
401 未认证
403 Only users with administrative privileges can access this method.
412 Unable to create

1.4 获得用户列表

返回Pentaho资源库中的用户列表。

支持方法

HTTP Verb Example Request
GET GET pentaho/api/userroledao/users

参数

Request Body

Response Body

返回平台的用户列表。

Element Media Types
userList application/xml
application/json

示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<userList><users>suzy</users><users>pat</users><users>tiffany</users><users>admin</users><users>vivi</users><users>swran001</users><users>Shipped</users>
</userList>

状态码

Code Description
200 Successfully returned the list of users.
500 An error occurred in the platform while trying to access the list of users.

1.5 获取用户的角色

获得某一个用户的所有角色。

支持方法

HTTP Verb Example Request
GET GET pentaho/api/userroledao/userRoles?userName=suzy

参数

Name Description Type
userName 需要获得角色的用户 query

Request Body

Response Body

返回平台的用户的角色。

Element Media Types
roleList application/xml
application/json

示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<roleList><roles>Power User</roles>
</roleList>

状态码

Code Description
200 Successfully retrieved the list of roles.
500 Invalid user parameter.

1.6 给用户分配角色

使用query parameters将系统存在的角色分配给系统已存在的用户。
如果用户名存在,但是角色系统不存在,也会返回204。这意味着调用是成功的,用户名也可以在系统找到,但是没有为用户分配该角色。这可以避免为用户分配多个角色时,其中一个角色不存在就报错的问题。
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
PUT PUT pentaho/api/userroledao/assignRoleToUser?userName=admin&roleNames=power%20user%09cto%09

参数

Name Description Type
userName 需要分配角色的用户名 query
roleNames 系统存在的角色名,分配多个角色时以tab(/t)分隔 query

Request Body

Response Body

Response Body包含状态码

Element Media Types
(custom) */*
application/xml
application/json

状态码

Code Description
200* Successfully append the roles to the user.(实际上是204)
403 Only users with administrative privileges can access this method.
500 Internal server error prevented the system from properly retrieving either the user or roles.

1.7 删除用户的角色

通过query parameters删除系统已存在的用户的指定角色
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
PUT PUT pentaho/api/userroledao/removeRoleFromUser?userName=admin&roleNames=Business%20User%09Power%20User%09

参数

Name Description Type
userName 需要删除角色的用户名 query
roleNames 平台存在的角色列表,删除多个时,用tab(\t)分隔 query

Request Body

Response Body

Response Body包含操作状态码

Element Media Types
(custom) */*
application/xml
application/json

状态码

Code Description
200* Successfully removed the roles from the user.(实际是204)
403 Only users with administrative privileges can access this method.
500 Internal server error prevented the system from properly retrieving either the user or roles.

2. Roles

本章节列的Rest API与Pentaho角色有关。

2.1 创建角色

创建一个角色,该角色没有任何权限。若要分配权限,需要新建另外的请求。详见2.5 给角色分配权限
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
PUT PUT pentaho/api/userroledao/createRole?roleName=rName

参数

Name Description Type
roleName 新建的角色名 query

Request Body

Response Body

Response Body包含操作状态码

Element Media Types
(custom) */*
application/xml
application/json

状态码

Code Description
200* Successfully created new role.(实际上是204)
400 Provided data has invalid format.
403 Only users with administrative privileges can access this method.
500 Unable to create role objects.

2.2 删除角色

删除平台角色,可批量删除
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
PUT PUT pentaho/api/userroledao/deleteRoles?roleNames=role1%09

参数

Name Description Type
roleNames 平台存在的角色,批量删除以tab(\t)分隔 query

Request Body

Response Body

Response Body包含操作状态码

Element Media Types
(custom) */*
application/xml
application/json

状态码

Code Description
200* Successfully deleted the list of roles.(实际上是204)
403 Only users with administrative privileges can access this method.
500 The system was unable to delete the roles passed in.

2.3 获取角色列表

获得平台的角色列表。

支持方法

HTTP Verb Example Request
GET GET pentaho/api/userroledao/roles

参数

Name Description Type

Request Body

Response Body

返回平台的角色列表

Element Media Types
roleList application/xml
application/json

示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<roleList><roles>Administrator</roles><roles>Power User</roles><roles>Report Author</roles><roles>Business Analyst</roles>
</roleList>

状态码

Code Description
200 Successfully retrieved the list of roles.
500 The system was not able to return the list of roles.

2.4 获取角色下的用户列表

获取某一角色下的用户列表,角色要在平台中存在。
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
GET GET pentaho/api/userroledao/roleMembers?roleName=Power%20User

参数

Name Description Type
roleName 获取用户列表的角色名 query

Request Body

Response Body

返回角色的用户列表

Element Media Types
userList application/xml
application/json

示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<userList><users>suzy</users><users>vivi</users>
</userList>

状态码

Code Description
200* Successfully retrieved the list of Users.(实际上是204)
403 Only users with administrative privileges can access this method.
500 The system was not able to return the list of users.

2.5 给角色分配权限

为角色分配系统的物理权限,该调用将为角色重新设置权限列表。如果新分配权限列表包含角色以前没有的权限,则增加权限。如果新分配权限列表去掉了角色以前的权限,则删除权限。
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
PUT PUT /pentaho/api/userroledao/roleAssignments
<systemRolesMap>
<assignments>
<roleName>Report Author</roleName>
<logicalRoles>org.pentaho.scheduler.manage</logicalRoles>
<logicalRoles>org.pentaho.repository.read</logicalRoles>
<logicalRoles>org.pentaho.security.publish</logicalRoles>
<logicalRoles>org.pentaho.repository.create</logicalRoles>
<logicalRoles>org.pentaho.repository.execute</logicalRoles>
</assignments>
</systemRolesMap>

参数

Name Description Type
roleAssignments Built from the Request payload, an example of the role assignments exists in the example request. query

Request Body

Built from the Request payload, an example of the role assignments exists in the example request.

Element Media Types
logicalRoleAssignments application/xml
application/json

Response Body

Response Body包含操作状态码

Element Media Types
(custom) */*
application/xml
application/json

状态码

Code Description
200* Successfully applied the logical role assignment.(实际上是204)
403 Only users with administrative privileges can access this method.

2.6 列出角色的权限

检索平台中的角色列表和操作权限映射,以及操作权限列表。逻辑角色名称映射由地区决定。如果区域设置为空,系统将使用默认的区域设置“en”。
⚠️ 终端用户必须有管理权限才可以执行。

支持方法

HTTP Verb Example Request
GET GET pentaho/api/userroledao/logicalRoleMap?locale=en

参数

Name Description Type
locale locale参数是可选的,它决定系统角色映射中物理权限的本地化角色名称。 query

Request Body

Response Body

当前系统的角色映射。每个赋值都包含不可变标志,不可变赋值的角色不能被编辑。这对于管理员之类的角色非常有用,他们不应该失去管理特权。分配中的逻辑角色是当前映射到角色的物理权限。角色名是可以分配给用户的角色的名称。系统角色映射还包括系统中所有物理权限的列表及其本地化的角色名称。本地化角色名基于传递给调用的本地角色名,默认为“en”。这些是可用于创建角色的物理权限。

Element Media Types
systemRolesMap application/xml
application/json

示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<systemRolesMap><assignments><immutable>true</immutable><logicalRoles>org.pentaho.platform.dataaccess.datasource.security.manage</logicalRoles><logicalRoles>org.pentaho.repository.execute</logicalRoles><logicalRoles>org.pentaho.repository.read</logicalRoles><logicalRoles>org.pentaho.repository.create</logicalRoles><logicalRoles>org.pentaho.scheduler.manage</logicalRoles><logicalRoles>org.pentaho.security.administerSecurity</logicalRoles><logicalRoles>org.pentaho.security.publish</logicalRoles><roleName>SysAdmin</roleName></assignments><assignments><immutable>false</immutable><logicalRoles>org.pentaho.repository.read</logicalRoles><roleName>Authenticated</roleName></assignments><assignments><immutable>false</immutable><logicalRoles>org.pentaho.scheduler.manage</logicalRoles><logicalRoles>org.pentaho.repository.read</logicalRoles><logicalRoles>org.pentaho.security.publish</logicalRoles><logicalRoles>org.pentaho.repository.create</logicalRoles><logicalRoles>org.pentaho.repository.execute</logicalRoles><roleName>Power User</roleName></assignments><assignments><immutable>true</immutable><logicalRoles>org.pentaho.platform.dataaccess.datasource.security.manage</logicalRoles><logicalRoles>org.pentaho.repository.execute</logicalRoles><logicalRoles>org.pentaho.repository.read</logicalRoles><logicalRoles>org.pentaho.repository.create</logicalRoles><logicalRoles>org.pentaho.scheduler.manage</logicalRoles><logicalRoles>org.pentaho.security.administerSecurity</logicalRoles><logicalRoles>org.pentaho.security.publish</logicalRoles><roleName>Administrator</roleName></assignments><assignments><immutable>false</immutable><logicalRoles>org.pentaho.security.publish</logicalRoles><roleName>Business Analyst</roleName></assignments><assignments><immutable>false</immutable><logicalRoles>org.pentaho.security.publish</logicalRoles><logicalRoles>org.pentaho.scheduler.manage</logicalRoles><roleName>Report Author</roleName></assignments><localizedRoleNames><localizedName>管理安全性</localizedName><roleName>org.pentaho.security.administerSecurity</roleName></localizedRoleNames><localizedRoleNames><localizedName>计划内容</localizedName><roleName>org.pentaho.scheduler.manage</roleName></localizedRoleNames><localizedRoleNames><localizedName>阅读内容</localizedName><roleName>org.pentaho.repository.read</roleName></localizedRoleNames><localizedRoleNames><localizedName>发布内容</localizedName><roleName>org.pentaho.security.publish</roleName></localizedRoleNames><localizedRoleNames><localizedName>创建内容</localizedName><roleName>org.pentaho.repository.create</roleName></localizedRoleNames><localizedRoleNames><localizedName>Execute</localizedName><roleName>org.pentaho.repository.execute</roleName></localizedRoleNames><localizedRoleNames><localizedName>管理数据源</localizedName><roleName>org.pentaho.platform.dataaccess.datasource.security.manage</roleName></localizedRoleNames>
</systemRolesMap>

状态码

Code Description
200 Successfully retrieved the permissions of roles.
403 Only users with administrative privileges can access this method.

Pentaho RestAPI用户角色管理相关推荐

  1. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)--ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)- ...

  2. 尚好房 02_用户角色管理

    尚好房:用户角色管理 一.功能介绍 1.角色管理 2.用户管理 二.后台前端框架 1.后台框架选择 后台前端框架模板:Hplus 下载地址:https://gitee.com/hplus_admin/ ...

  3. orale用户角色管理

    Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的).   二.系 ...

  4. MongoDB 用户角色管理

    文章目录 1 用户管理简介 2 内置角色 3 创建用户 3.1 创建管理员用户 3.2 创建普通用户 3.3 创建 root 用户 3.4 创建带有自定义信息的用户 4 查看用户信息 5 更新用户角色 ...

  5. 扩展吉日嘎拉的用户角色管理,让用户角色编码和名称在一个组织里面唯一

    吉日嘎拉的权限管理系统原功能中只是控制用户角色名称唯一,但实际使用中我更需要角色编码唯一不重复! 直接上代码,在Role的Add和Update方法中,增加如下代码: //检查角色Code是否重复 Tr ...

  6. PostgreSQL用户角色和权限管理

    一.用户角色管理 1.创建用户角色 create user cjr LOGIN;create role cjr1 CREATEDB;create role cjr2 superuser; create ...

  7. 2.3.5 mysql角色管理

    --04.用户角色管理 mysql5.7:proxies_priv(模拟角色),可以实现用户組的管理 角色(roLe)可以批量管理用户,同一个角色下面的数据都有相同的权限 mysql 5.7是通过 m ...

  8. Mendix用户角色权限设计思路

    ​在传统的企业应用架构设计中,不可避免需要涉及用户角色权限的设计,其中最为通用的模型是RBAC模型.RBAC(基于角色的访问控制)是指用户通过角色与权限进行关联.即一个用户拥有若干角色,每一个角色拥有 ...

  9. RabbitMQ:入门(三)——RabbitMQ用户管理、角色管理与权限管理

    1. 用户管理 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码. 相应的命令 (1) 新增一个用户 rabbitmqctl  add_user  Username  Password (2 ...

  10. RBAC基于角色的用户权限管理

    美国国家标准与技术研究院(The National Institute Of Standards And Technology,NIST)标准RABC(Role-based policies Acce ...

最新文章

  1. 前端临床手扎——简单易用的fetch
  2. pycharm mysql安装_PyCharm安装连接MySQL
  3. Linux工作笔记034---linux tail命令详解_linux在vi中查找字符串
  4. jBPM工作流 之JBPM4
  5. matlab对多项式求导的命令,matlab多项式求导
  6. Shellsploit注入器简单利用
  7. XDroid 轻量级的Android快速开发框架
  8. 图像操作(反差,混合,调整图像亮度与对比度,绘制文字)
  9. 北大「通班」!AI界泰斗朱松纯领衔、IEEE Fellow 陈宝权出任副院长
  10. 计算机平面设计评分标准,竞赛各专业评分标准.DOC
  11. 扫盲贴:手游圈行业术语汇总
  12. html 禁止页面回弹,JavaScript禁止微信浏览器下拉回弹效果
  13. 武田呈报的ALK+ NSCLC长期数据显示,ALUNBRIG(R) (brigatinib)在2年随访期之后继续展示一线治疗中的优效性
  14. c#8583_解析ISO8583报文实例
  15. 阿里云优惠活动中的新用户是如何界定的
  16. ps2改usb接口_DIY轻松把键盘、鼠标PS2接口改造成USB接口
  17. 2013年全年目标及执行情况跟踪
  18. iStylePDF把多个PDF合并成一个PDF文件
  19. ASPICE认证是智能汽车研发需做的认证
  20. 中国天气网天气API参数详细解释说明

热门文章

  1. ACCESS数据库基本使用
  2. 信息泄露事件频发 快递行业的隐私面单之战
  3. 在边缘试探的滴滴顺风车 凭什么在2019年再上线?
  4. linux分区修复命令,在Linux下成功修复分区表出错
  5. matlab画进化树分析图,教你用ggtree绘制高颜值进化树
  6. vim打开文件时显示行号
  7. win10系统下搭建FTP服务器(完成文件上传与下载)
  8. 前端周刊第56期:应接不暇的技术大会
  9. 简单分析Mysql不同方式联表查询的效率问题
  10. 机器人系统数学建模(现代控制理论1)