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_厦门亿联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 上个月,我们提供了一个完整的零售示例,其中的JBoss Cool Store运行在您的堆栈的OpenShift Enterprise层上,由…

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

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

i219 2012驱动_2012年I / O之后

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

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

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

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

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

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

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

Spring RESTful Web服务中的异常处理

1.简介 我们可能已经在Spring中遇到了几种处理RESTful Web服务应用程序中异常的方法。 在本文中,我们将尝试探索可以采取的最佳方法来实现有效的异常处理。 2.问题陈述 让我们创建一个简单的应用程序,该应用程序将在REST URI中标识员工姓名。 如果请求中…

java调python画图_Python Matplotlib plot 绘图

1、绘制x和y点plot()函数用于在图中绘制点(标记)。默认情况下,plot()函数在点到点之间画一条线。该函数具有用于在图中指定点的参数。参数1是一个数组,其中包含x轴上的点。参数2是一个包含y轴上的点的数组。如果需要绘制从(1,3)到(8&#xff…

jms activemq_带有ActiveMQ的JMS

jms activemq带有ActiveMQ的JMS JMS是Java消息服务的缩写,它提供了一种以松散耦合,灵活的方式集成应用程序的机制。 JMS以存储和转发的方式跨应用程序异步传递数据。 应用程序通过充当中介的MOM(面向消息的中间件)进行通信&#x…

【EMV L2】SDA静态数据认证处理流程

【静态数据认证】 静态数据认证处理过程中,卡片没有执行任何处理,终端执行的处理流程:1、认证中心公钥的获取终端使用卡片上的认证中心公钥索引(PKI)【TAG:8F,Certification Authority Public K…

java取邮箱前缀_java抓取网页或文件中的邮箱号码

java抓取网页或文件中的邮箱号码发布时间:2020-10-18 08:58:32来源:脚本之家阅读:69作者:java大渣渣本文实例为大家分享了java抓取邮箱号码的具体代码,供大家参考,具体内容如下java抓取文件中邮箱号码的具体…

java btrace_BTrace:Java开发人员工具箱中的隐藏宝石

java btrace这篇文章是关于BTrace的 ,我正在考虑将其作为Java开发人员的隐藏宝藏。 BTrace是用于Java平台的安全,动态跟踪工具。 BTrace可用于动态跟踪正在运行的Java程序(类似于DTrace,适用于OpenSolaris应用程序和OS&#xff09…

xampp浏览php出现乱码,dvwa+xampp搭建显示乱码的问题及解决方案

如图,dvwa显示乱码,解决办法有两个:1、方法一是,临时解决办法,也就是每次都得手动修改:利用浏览器的编码修改2、方法二是:永久方案,那就是修改dvwa的配置文件,修改默认编…

HotSpot的-XshowSettings标志的简单性和价值

一个方便的HotSpot JVM标志 ( 选项为Java启动 java )是-XshowSettings选项。 Oracle Java启动器描述页面中对此选项进行了如下描述 : -XshowSettings : category显示设置并继续。 该选项的可能类别参数包括: all显示所…

Python验证码简单实现(数字和大写字母组成的4位验证码)

#数字和英文大写字母的4位随机数 def checkcode(): #def 定义方法 checkcode() 方法名()import random # 导入包checkcode ""string range(0,4)for i in string:current random.randrange(0,3) #randrange随机数 参数1<随机数<参数2if current ! i:temp …

php haystack,haystack(示例代码)

1、haystack简介Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询&#xff0c;使用全文检索的效率更高 )&#xff0c;该框架支持Solr,Elasticsearch,Whoosh, Xapian&#xff0c;搜索引擎它是一个可插拔的后端(很像Django的数据库层)&#xff0c;所以几乎你…

fopen php 乱码,如何解决php fgets读取文件乱码的问题

如何解决php fgets读取文件乱码的问题,文件,乱码,简体中文,记事本,页面如何解决php fgets读取文件乱码的问题易采站长站&#xff0c;站长之家为您整理了如何解决php fgets读取文件乱码的问题的相关内容。php fgets乱码的解决办法&#xff1a;首先依次点击“菜单修改->页面属…

一致性哈希算法原理分析及实现

一致性哈希算法常用于负载均衡中要求资源被均匀的分布到所有节点上&#xff0c;并且对资源的请求能快速路由到对应的节点上。具体的举两个场景的例子&#xff1a; 1、MemCache集群&#xff0c;要求存储各种数据均匀的存到集群中的各个节点上&#xff0c;访问这些数据时能快速的…

jsf集成spring_JSF – PrimeFaces和Hibernate集成项目

jsf集成spring本文介绍了如何使用JSF&#xff0c;PrimeFaces和Hibernate开发项目。 下面是一个示例应用程序&#xff1a; 二手技术&#xff1a; JDK 1.6.0_21 Maven的3.0.2 JSF 2.0.3 PrimeFaces 2.2.1 Hibernate3.6.7 MySQL Java连接器5.1.17 MySQL 5.5.8 Apache Tomcat 7.…