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

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

jbpm 和 drools

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

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

相关文章

从事java编程技能要求_5道Java视频课程,提高您的编程技能

从事java编程技能要求作为Web开发人员,跟上技术知识可能会很棘手。 新技术似乎每天都在弹出,而基本技术也看到了重复迭代的浪潮,增加了新的功能。 Java开发人员应该做什么? 这是在线教育平台发挥作用的地方。 它们可以帮助您快速…

sqlserver存储过程加锁后怎么解锁_【缺陷周话】第59期:重复加锁

聚焦源代码安全,网罗国内外最新资讯!*声明:《缺陷周话》栏目系列文章由奇安信代码卫士团队原创出品。未经许可,禁止转载。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。代码审计是使用静态分析发现源代码中安全缺陷的方法&…

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

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

ssm影城项目_影场与属性访问器界面

ssm影城项目卡尔迪亚(Carl Dea)最近跟踪了我的一篇名为“ 保存内存”的博客文章! 为属性使用阴影字段 。 在他的博客中,他建议使用称为“属性访问器”的接口来消除大量使用样板代码所需的样板代码。 卡尔还提到他尚未用大量数据测…

java流写入数据库_Java 8:在2分钟内将智能流与数据库一起使用

java流写入数据库快速流媒体 当Java 8最终问世时,我和一些大学开始了一个开源项目,以利用Java 8的流库使整个Java / DB问题更进一步,以便将数据库表视为纯Java 8流。 速度诞生了! 哇,现在我们可以做类型安全的数据库应…

小米摄像头有onvif协议_监控摄像头完好但图像不行,肯定逃不过这10个问题

摄像头仅仅是视频监控系统的一部分,即使摄像头完好无损,监控画面也可能会出现不显示、卡顿、丢失等情况。想要彻底解决网络监控的问题,往往需要排查各个连接设备才可以判断。下面我们就总结了10个问题,彻底解决网络监控的问题。一…

java对话_您应该保持联系的十大高级Java对话

java对话在线讲座和视频是学习软件开发新事物的主要资源之一。 您可以找到Java专家与您分享他们的经验,而不必坐下来。 在下面的文章中,我们收集了10位我们最喜欢的演讲者和主题,我们相信每个Java开发人员都应该注意。 获取爆米花&#xff0…

【WebRTC---源码篇】(三)Windows/Linux音视频采集封装模块

视频采集相关类图 DeviceInfo接口提供了设备枚举相关功能。 NumberOfDevices枚举设备个数。 GetDeviceName获取某个设备名称。 GetCapability枚举某个设备所支持的所有能力(VideoCaptureCapability: 分辨率,最大帧率,颜色类型) VideoCaptureModule视频采集模块的基类: …

java设计单词英译汉小助手_拣单词|第八期第3天:第521528个单词宝藏

宝藏坚持每天拣单词积累你的词汇宝藏打好英语学习基本功怎么学?每天预留15分钟,积累你的词汇宝藏!每周一、二、三,发布新单词每周四、五、六,乱序复习单词周日测试(仅限入群的学员)遇到新单词,你可以&#…

spring多个视图解析器_在Spring中配置多个View解析器

spring多个视图解析器1.简介 在Spring中,提供了View Resolver来使用模型中可用的数据来解析视图,而无需与JSP,Velocity或Thymeleaf等View技术紧密绑定。 Spring可以根据需要轻松灵活地配置一个或多个View Resolver 。 2. Spring MVC应用程序…

单选按钮:after_选择的按钮:将ToggleButtons用作单选按钮

单选按钮:after对于MQTT.fx,我想使用ToggleButtons例如选择MQTT消息或QoS级别的解码: 我发现在ToggleGroup的上下文中,ToggleButton在选择/取消选择方面的行为与RadioButtons不同:与RadioButtons不同,ToggleButtons仍…

【技术解决方案】开发工具源码安装包大全

汇总下载链接 下载地址 QT下载以及安装 各版本QT下载地址 1.安装中根据不同的开发环境勾选相应的,如果使用VS编译请先安装VS和SDK然后再安装QT。 使用VS时CDB调试支持需要勾选 QTCreator断点调试需要下载SDK,Windows的SDK下载地址,只需要安装勾选如…

垃圾收集算法,垃圾收集器_确定活动的热点垃圾收集器

垃圾收集算法,垃圾收集器StackOverflow问题查找正在运行哪种类型的垃圾收集 器,jvm的默认垃圾收集器 , 如何通过查看gc日志来查看正在运行的垃圾收集器? ,以及如何知道HotSpot jvm的当前GC策略? 以及博客文章如何以编程…

树与堆的基本概念

当看到这里的时候,相信你的链表,队列,栈学的也差不多可以了,那么接下来让我们一起进入树的学习吧! 一.树的概念以及一些知识记忆 树的定义: 树是一种 非线性 的数据结构,它是由 n &#xff08…

jboss war包放哪_如何将JBoss HR Employee Rewards项目放入云端

jboss war包放哪我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了。 我们从头到尾讨论了各个层次,但尚未为您提供除Red Hat Container Development Kit(CDK)之外的任何应用程序开发工具。 到目前为止&am…

hotspot 垃圾收集器_HotSpot增量Java垃圾收集器

hotspot 垃圾收集器在我最近的博客文章“ 确定活动的HotSpot垃圾收集器”中 ,我描述了可用于确定HotSpot JVM (Java进程)正在使用的垃圾收集器(当从命令行参数(标志)中变得不明显时)的不同方法。…

【安卓开发 】Android初级开发(一)控件通用属性

控件通用属性 match_parent 是指和父容器宽高相等的值,其他的同理可证。 android:layout_marginTop"XXXXXXdp" 距离顶部的距离 Android TextView属性详解 该控件相关属性 Android EditText属性大全 相关属性查看地址 事件监听处理 package com.examp…

认证令牌_Java应用程序的令牌认证

认证令牌建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现。 注册 ,再也不会建立auth了! 2016年5月12日更新&#xf…

java package报错_Java基础知识总结 - 超详细篇(上)

1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库JVM(java虚拟机)。3&#xff0c…

weblogic 建立websocket连接报404_基于 Serverless 与 Websocket 的聊天工具实现

传统业务实现 Websocket 并不难,然而函数计算基本上都是事件驱动,不支持长链接操作。如果将函数计算与 API 网关结合,是否可以有 Websocket 的实现方案呢?API 网关触发器实现 WebsocketWebSocket 协议是基于 TCP 的一种新的网络协…