Pentaho RestAPI用户角色管理
来源: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用户角色管理相关推荐
- 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理
系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)--ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)- ...
- 尚好房 02_用户角色管理
尚好房:用户角色管理 一.功能介绍 1.角色管理 2.用户管理 二.后台前端框架 1.后台框架选择 后台前端框架模板:Hplus 下载地址:https://gitee.com/hplus_admin/ ...
- orale用户角色管理
Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的). 二.系 ...
- MongoDB 用户角色管理
文章目录 1 用户管理简介 2 内置角色 3 创建用户 3.1 创建管理员用户 3.2 创建普通用户 3.3 创建 root 用户 3.4 创建带有自定义信息的用户 4 查看用户信息 5 更新用户角色 ...
- 扩展吉日嘎拉的用户角色管理,让用户角色编码和名称在一个组织里面唯一
吉日嘎拉的权限管理系统原功能中只是控制用户角色名称唯一,但实际使用中我更需要角色编码唯一不重复! 直接上代码,在Role的Add和Update方法中,增加如下代码: //检查角色Code是否重复 Tr ...
- PostgreSQL用户角色和权限管理
一.用户角色管理 1.创建用户角色 create user cjr LOGIN;create role cjr1 CREATEDB;create role cjr2 superuser; create ...
- 2.3.5 mysql角色管理
--04.用户角色管理 mysql5.7:proxies_priv(模拟角色),可以实现用户組的管理 角色(roLe)可以批量管理用户,同一个角色下面的数据都有相同的权限 mysql 5.7是通过 m ...
- Mendix用户角色权限设计思路
在传统的企业应用架构设计中,不可避免需要涉及用户角色权限的设计,其中最为通用的模型是RBAC模型.RBAC(基于角色的访问控制)是指用户通过角色与权限进行关联.即一个用户拥有若干角色,每一个角色拥有 ...
- RabbitMQ:入门(三)——RabbitMQ用户管理、角色管理与权限管理
1. 用户管理 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码. 相应的命令 (1) 新增一个用户 rabbitmqctl add_user Username Password (2 ...
- RBAC基于角色的用户权限管理
美国国家标准与技术研究院(The National Institute Of Standards And Technology,NIST)标准RABC(Role-based policies Acce ...
最新文章
- 前端临床手扎——简单易用的fetch
- pycharm mysql安装_PyCharm安装连接MySQL
- Linux工作笔记034---linux tail命令详解_linux在vi中查找字符串
- jBPM工作流 之JBPM4
- matlab对多项式求导的命令,matlab多项式求导
- Shellsploit注入器简单利用
- XDroid 轻量级的Android快速开发框架
- 图像操作(反差,混合,调整图像亮度与对比度,绘制文字)
- 北大「通班」!AI界泰斗朱松纯领衔、IEEE Fellow 陈宝权出任副院长
- 计算机平面设计评分标准,竞赛各专业评分标准.DOC
- 扫盲贴:手游圈行业术语汇总
- html 禁止页面回弹,JavaScript禁止微信浏览器下拉回弹效果
- 武田呈报的ALK+ NSCLC长期数据显示,ALUNBRIG(R) (brigatinib)在2年随访期之后继续展示一线治疗中的优效性
- c#8583_解析ISO8583报文实例
- 阿里云优惠活动中的新用户是如何界定的
- ps2改usb接口_DIY轻松把键盘、鼠标PS2接口改造成USB接口
- 2013年全年目标及执行情况跟踪
- iStylePDF把多个PDF合并成一个PDF文件
- ASPICE认证是智能汽车研发需做的认证
- 中国天气网天气API参数详细解释说明