jBPM和Drools工作台中的用户和组管理

介绍

本文讨论了一项新功能,该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组。

用户和组管理

用户和组管理

在安装,设置和使用此功能之前,本文讨论了一些以前的概念,需要进一步理解才能进一步使用。

因此,本文分为以下几节:

  • 安全管理提供者和功能
  • 安装与设定
  • 用法

笔记:

  • 版本6.4.0.Final中包含此功能。
  • 可用资源在这里 。

安全管理提供商

通常通过使用领域来提供安全环境。 领域用于限制对不同应用程序资源的访问。 因此,领域包含有关用户,组,角色,权限和任何其他相关信息的信息。

在大多数典型方案中,应用程序的安全性委派给容器的安全性机制,该机制同时消耗给定领域。 重要的是要考虑到存在多个领域实现,例如Wildfly提供了基于application-users.properties / application-roles.properties文件的领域,Tomcat提供了基于tomcat-users.xml文件的领域,等等。请记住,没有单一的安全领域可依赖,在每个安装中它可以有所不同。

jBPM和Drools工作台也不例外,它们建立在顶级Uberfire框架 (又名UF)上,该框架还将授权和身份验证委派给基础容器的安全环境,因此使用的领域由具体的部署配置提供。

安全管理提供商

由于必须支持潜在的不同安全环境,因此用户和组管理提供了定义良好的管理服务API,并带有一些默认内置
安全管理提供者安全管理提供程序是给定领域的具体用户和组管理服务实现的正式名称。

目前,默认情况下,可以使用三个安全管理提供程序:

  • Wildfly / EAP安全管理提供程序 –基于属性文件的领域。
  • Tomcat安全管理提供程序 –基于XML文件的领域。
  • Keycloak安全管理提供程序 –用于管理基于Keycloak的领域。 该提供程序包含在当前正在开发的下一个7.0系列的技术预览中。

在更多版本上保持有关新安全管理提供程序的更新。 如果您的环境中没有适合的默认值,则可以轻松构建和注册自己的安全管理提供程序。

安全管理提供程序功能

每个安全领域可以提供支持不同的操作。 例如,考虑基于属性文件使用Wildfly领域, applications-users.properties的内容如下:

admin=207b6e0cc556d7084b5e2db7d822555c
salaboy=d4af256e7007fea2e581d539e05edd1b
maciej=3c8609f5e0c908a8c361ca633ed23844
kris=0bfd0f47d4817f2557c91cbab38bb92d
katy=fd37b5d0b82ce027bfad677a54fbccee
john=afda4373c6021f3f5841cd6c0a027244
jack=984ba30e11dda7b9ed86ba7b73d01481
director=6b7f87a92b62bedd0a5a94c98bd83e21
user=c5568adea472163dfc00c19c6348a665
guest=b5d048a237bfd2874b6928e1f37ee15e
kiewb=78541b7b451d8012223f29ba5141bcc2
kieserver=16c6511893651c9b4b57e0c027a96075

如您所见,它基于键值对,其中键是用户名,而值是用户密码的哈希值。 因此,仅通过键,用户名,名称,地址等来定义用户。

另一方面,请考虑使用Keycloak服务器提供的领域。 用户的信息由更多的用户元数据组成,例如姓,地址等,如下图所示:

admin_user_view

管理员用户使用Keycloak秒进行编辑。 管理提供者

创建用户,因此用户和组管理API中不同的服务和客户端组件均基于功能
功能用于公开或限制由不同服务和客户端组件提供的可用功能。 功能示例包括:

  • 更新用户
  • 删除用户
  • 更新用户属性
  • 创建组
  • 分配组
  • 分配角色  
  • 等等

每个安全管理提供程序必须指定一组支持的功能。 从前面的示例中,您可以注意到,Wildfly安全管理提供程序不支持用户属性的管理功能-用户仅由用户名组成。 另一方面,Keycloak提供程序确实支持此功能。

不同的视图和用户界面组件依赖于每个提供程序支持的功能,因此,如果使用中的提供程序不支持该功能,则UI不会提供用于管理该功能的视图。 例如,请考虑一个具体的提供者不支持删除用户–用户界面上的删除用户按钮将不可用。

请查看具体的服务提供商文档,以检查每种支持的所有功能,可以在此处找到默认功能。

如果任何默认提供程序都不支持安全环境,则可以构建自己的安全环境。 请保持有关有关如何创建自定义安全管理提供程序的其他文章的最新信息。

安装与设定

在考虑安装和设置步骤之前,请注意以下默认的Drools和jBPM发行版带有内置的,预安装的安全管理提供程序:

  • Wildfly / EAP分发 –两种分发都使用Wildfly安全管理提供程序 ,该提供程序配置为使用默认领域文件应用程序users.propertiesapplication-roles.properties
  • Tomcat分发 –使用为默认域文件tomcat-users.xml的使用而配置的Tomcat安全管理提供程序

如果您的领域设置与默认设置不同,请阅读每个提供商的文档以应用具体设置。

另一方面,如果要构建自己的安全管理提供程序或需要将其包含在现有应用程序中,请考虑以下安装选项:

  • 在现有的WAR发行版上启用安全管理功能
  • 在现有或新项目中进行设置和安装(来自源)

注意:如果应用程序中未安装安全管理提供程序,则将没有可用的用户界面来管理安全领域。 安装和设置安全管理提供程序后,将自动启用用户和组管理用户界面,并可以从主菜单中对其进行访问。

在现有的WAR发行版上启用安全管理功能

给定Drools和jBPM工作台的现有WAR分发,请按照以下步骤安装和启用用户管理功能:

  1. 确保WEB-INF / lib上存在以下库:
    • WEB-INF / lib / uberfire-security-management-api-6.4.0.Final..jar
    • WEB-INF / lib / uberfire-security-management-backend-6.4.0.Final..jar
  2. WEB-INF / lib中添加供安全管理提供程序使用的具体库:
    • 例如:WEB-INF / lib / uberfire-security-management-wildfly-6.4.0.Final..jar
    • 如果您使用的具体提供程序需要更多库,则也要添加这些库。 请阅读每个提供商的文档以获取更多信息。
  3. 将整个内容替换为文件WEB-INF / classes / security-management.properties ,如果不存在,则创建它。 该文件上存在的设置取决于您所使用的具体实现。 请阅读每个提供商的文档以获取更多信息。
  4. 如果要在Wildfly或EAP上进行部署,请检查WEB-INF / jboss-deployment-structure.xml是否需要任何更新。 请阅读每个提供商的文档以获取更多信息。

在现有或新项目中进行设置和安装(来自源)

如果您要构建基于Uberfire的Web应用程序,并且要包括用户和组管理功能,请阅读此说明 。

禁用安全管理功能

可以禁用安全管理功能,因此任何一种都不能使用任何服务或用户界面

  • 从应用程序卸载安全管理提供程序如果在应用程序上未安装任何具体的安全管理提供程序,则将禁用用户和组管理功能,并且不会向用户提供任何服务或用户界面。
  • 删除或注释安全管理配置文件删除或注释位于WEB-INF / classes / security-management.properties的配置文件中的所有行将禁用用户和组管理功能,并且不会向用户显示任何服务或用户界面。

用法

用户和组管理功能是使用两个不同的视角来呈现的,这些视角可从主“ 主页”菜单中获得(考虑到该功能已启用),如下所示:

主菜单

用户和组管理菜单项

阅读以下各节,以同时使用用户和组管理透视图。

用户管理

用户管理界面可从“ 主页”菜单中的“ 用户管理”菜单项获得。

该界面使用两个主面板显示:西面板上的用户资源管理器和中间面板上的用户编辑器:

users_perspective

用户管理角度

除了列出所有用户之外,用户资源管理器还允许:西面板上的用户资源管理器默认列出应用程序安全领域中存在的所有用户:

  • 搜索用户 users_explorer_search
    在搜索框中指定搜索模式时,用户列表将减少,仅显示与搜索模式匹配的用户。搜索模式取决于应用程序所使用的具体安全管理提供程序。 请阅读每个提供商的文档以获取更多信息。
  • 创建新用户create_new_user 通过单击创建新用户按钮,将在中心面板上显示一个新屏幕,以执行新用户创建。

中央面板上的用户编辑器用于创建,查看,更新或删除用户。 创建新用户或在用户浏览器中单击现有用户后,将打开用户编辑器屏幕。

查看现有用户 ,请在“用户资源管理器”中单击现有用户以打开“用户编辑器”屏幕。 例如,在使用Wildfly安全管理提供程序时查看管理员用户将在以下屏幕中显示:

查看管理员用户

查看管理员用户

相同的管理员用户视图操作,但使用Keycloak安全管理提供程序而不是Wildfly的提供程序时,将在以下屏幕中显示:

使用Keycloak秒。管理提供者

使用Keycloak秒。 管理提供者

如您所见,用户编辑器在使用Keycloak sec时。 管理提供程序包括用户属性管理部分,但使用Wildfly的部分不存在。 因此请记住,用户界面上可用的信息和操作取决于每个提供程序的功能(如前几节所述),

在用户编辑器中查看用户将提供以下信息(如果提供程序支持的话):

  • 用户名
  • 用户的属性
  • 分配的组
  • 分配的角色

为了更新或删除现有用户 ,请在用户编辑器屏幕中单击用户名旁边的“ 编辑”按钮:

编辑管理员用户

编辑管理员用户

更新用户的属性一旦用户编辑器以编辑方式出现,就可以执行不同的操作(如果使用的安全管理提供程序支持它):

user_attributes 可以更新现有的用户属性,例如用户名,姓氏等。如果安全管理提供程序支持,还可以创建新的属性。

  • 更新分配的组单击“ 添加到组”按钮时, 显示一个组选择弹出窗口: groups_selection 该弹出屏幕允许用户搜索并选择或取消选择为当前正在编辑的用户分配的组。
  • 更新分配的角色单击添加到角色按钮时, 显示一个角色选择弹出窗口: 角色选择 该弹出屏幕允许用户搜索和选择或取消选择为当前正在编辑的用户分配的角色。
  • 修改用户密码

单击更改密码按钮时,将显示一个更改密码弹出屏幕: 更改密码

  • 删除用户

单击“ 删除”按钮,可以从领域中删除当前正在编辑的用户。

集团管理

可以从“ 主页”菜单中的“ 组管理”菜单项访问组管理界面。

该界面使用两个主面板显示:西面板上的分组浏览器和中间面板上的分组编辑器:

集团管理的角度

集团管理的角度

西面板上的“ 组资源管理器”默认情况下列出了应用程序安全领域中存在的所有组:

群组浏览器

群组浏览器

除了列出所有组,组浏览器还允许:

  • 搜索组

在搜索框中指定搜索模式时,用户列表将减少,并且将仅显示与搜索模式匹配的用户。

groups_explorer_search

使用搜索过滤的网上论坛浏览器

搜索模式取决于应用程序所使用的具体安全管理提供程序。 请阅读每个提供商的文档以获取更多信息

  • 建立新群组 create_group_button 通过单击创建新组按钮,中心面板上将出现一个新屏幕,以执行新组创建。 创建新组后,便可以为其分配用户:
    将用户分配给最近创建的组

    将用户分配给最近创建的组

中心面板上的组编辑器用于创建,查看或删除组。 创建新组后,在组浏览器中单击现有组,将打开组编辑器屏幕。

查看现有组 ,请在“组资源管理器”中单击现有用户以打开“组编辑器”屏幕。 例如,在以下屏幕上查看销售组结果:

查看销售组

查看销售组

删除现有组,只需单击“ 删除”按钮。

翻译自: https://www.javacodegeeks.com/2016/04/user-group-management-jbpm-drools-workbenches.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java懒加载设计模式_java设计模式——单例模式

整理一下设计模式的个人理解。描述单例模式是java中比较常见的一种设计模式,顾名思义为一个类只能创建一个实例,多用于全局对象,如:配置的加载,spring bean加载各种配置(spring容器所有bean默认都是单例)单例的特点为构…

BZOJ.4553.[HEOI2016TJOI2016]序列(DP 树状数组套线段树/二维线段树(MLE) 动态开点)

题目链接&#xff1a;BZOJ 洛谷\(O(n^2)\)DP很好写&#xff0c;对于当前的i从之前满足条件的j中选一个最大值,\(dp[i]d[j]1\) for(int j1; j<i; j)if(a[j]<minv[i]&&maxv[j]<a[i])//序列只会变换一次 dp[i]max{dp[j]1}; 转移要满足两个条件&#xff1a;\(a[j]…

java 快速构建ssm项目_SSM快速搭建

基本环境搭建1、 创建Maven工程2、 导入项目相关依赖的jar包springspringmvcmybatismysqljunitspring-testlombokdevtoolsxmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org…

jpa 查询 列表_终极JPA查询和技巧列表–第2部分

jpa 查询 列表这一部分是该系列文章的第一部分 。 JPA&#xff1a;NamedQuery&#xff0c;使用日期查询&#xff0c;有关getSingleResult方法的警告 为了避免重复查询代码&#xff0c;提高性能并简化维护查询&#xff0c;我们可以使用NamedQueries。 NamedQuery使用JPQL作为语…

IE针对Ajax请求结果的缓存IE浏览器同一个请求第二次是缓存数据不刷新

IE针对Ajax请求结果的缓存IE浏览器同一个请求第二次是缓存数据不刷新 IE针对Ajax请求结果的缓存/ IE浏览器同一个请求第二次是缓存 一.在AJAX请求的属性上直接设置cache function getSetServer (selectIDs) {$.ajax({url:/kl_eas/v1/monitor/servers? new Date().toTimeString…

亿联本科java_厦门亿联2018面试题

一、选择器public class EqTest {public static void main(String[] args) {EqTest e new EqTest();}public EqTest() {String s "Java";String s2 "java";//if (s.equalsIgnoreCase(s2)){System.out.println("相等");} else {System.out.pri…

如何将云持久存储添加到JBoss Cool Store

我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了。 带有JBoss Cool Store的App Dev Cloud 上个月&#xff0c;我们提供了一个完整的零售示例&#xff0c;其中的JBoss Cool Store运行在您的堆栈的OpenShift Enterprise层上&#xff0c;由…

吴莫烦

https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/2-1-NN/转载于:https://www.cnblogs.com/lhuser/p/8446525.html

mysql 表单属性_php表单常用属性有什么?

程序开发中&#xff0c;必不可少的会使用到form表单&#xff0c;以前只是在前端开发时简单使用&#xff0c;对它的属性不甚了解&#xff0c;最近在后端学习中&#xff0c;不断接触到它的属性,现记录一二。下面本篇文章给大家介绍php表单常用的5个属性。actionaction规定了提交表…

centos-安装python3.6环境并配置虚拟环境

python3.6下载地址&#xff1a;https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz linux下python环境配置 统一目录&#xff1a; 源码存放位置 $HOME/tools安装目录&#xff1a; /application安装python环境&#xff1a; 1. 下载 # 创建下载目录 mkdir $HOME/tools #…

java构造器详解_Java中关于构造器的使用详解

这篇文章主要介绍了Java构造器使用方法及注意事项的相关资料,这里举例说明如何使用构造器及需要注意的地方&#xff0c;需要的朋友可以参考下Java构造器使用方法及注意事项超类的构造器在子类的构造器运行之前运行&#xff0c;也就是说&#xff0c;在创建对象时&#xff0c;先运…

i219 2012驱动_2012年I / O之后

i219 2012驱动从注册到赠品&#xff0c;每年的I / O疯狂都在不断发展。 在今年20分钟内被出售&#xff0c;并没有阻止Google赠送更多的东西。 以这种速度并有望在明年发布Google Glass&#xff0c;明年注册很可能会变得更加混乱&#xff01; 因此&#xff0c;Google&#xff0c…

Mac 工程化工具

工程化工具 一、HomeBerw 安装 / 卸载 Mac系统的包管理器&#xff0c;用于安装NodeJS和一些其他必需的工具软件 1.安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 译注&#xff1a;在Max OS X 10.11&…

java的sql的like_[Java教程]SQL like 模糊查询, in

[Java教程]SQL like 模糊查询, in0 2018-09-14 11:00:38​[{"互联网":["网络媒体","微博","墨迹天气","河北天气","其他"]},{"气象部门":["灾害大典","灾情普查","灾情直报&q…

9.管好进程和服务

1.查看进程 1.进程分类进程一般分为交互进程、批处理进程和守护进程三类。上述三种进程各有各的作用&#xff0c;使用场合也有所不同。 交互进程&#xff1a;由一个 shell 启动的进程。交互进程既可以在前台运行&#xff0c;也可以在后台运行。 批处理进程&#xff1a;这种…

惠而浦:使用Netty和Kafka的微服务

介绍 在上一个博客中 &#xff0c;我介绍了Netty用作Web服务器。 该示例运行良好……只要需要广播服务器即可。 大多数情况下不是很有用。 更有可能的是&#xff0c;每个客户端仅接收针对其的数据&#xff0c;并保留了特殊情况下的广播&#xff0c;例如“服务器在15分钟内停机…

石化总部java面试题_中国石化面试经验

面试过程&#xff1a;首先&#xff0c;上午进行面试人员签到&#xff0c;大约100人左右。一共要2个人。下午1点半开始统一面试。人员较多&#xff0c;所以每个人只有3分钟时间&#xff0c;一共最少8位面试官。过程中&#xff0c;他们很少提问题&#xff0c;如果你的技术比较新颖…

ajax标准

$.ajax({url:"localhost:8889/server", //请求的url地址dataType:"json", //返回格式为jsonasync:true,//请求是否异步&#xff0c;默认为异步&#xff0c;这也是ajax重要特性data:{"id":"value"}, //参数值type:"GET&qu…

java 生成器 设计模式_Java中的生成器设计模式

java 生成器 设计模式Java 中的 Builder设计模式是一种创建模式&#xff0c;即用于创建对象&#xff0c;类似于 工厂方法设计模式 &#xff0c;这也是创建设计模式。 在学习任何设计模式之前&#xff0c;我建议先找出特定设计模式要解决的问题。 众所周知&#xff0c; 必要性是…

python倒排索引实现_倒排索引原理和实现 - uncle_LLD的个人空间 - OSCHINA - 中文开源技术交流社区...

关于倒排索引搜索引擎通常检索的场景是&#xff1a;给定几个关键词&#xff0c;找出包含关键词的文档。怎么快速找到包含某个关键词的文档就成为搜索的关键。这里我们借助单词——文档矩阵模型&#xff0c;通过这个模型我们可以很方便知道某篇文档包含哪些关键词&#xff0c;某…