【工作流前进之路】Activiti 权限之用户管理

2024-03-15 06:08

本文主要是介绍【工作流前进之路】Activiti 权限之用户管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     在每一个系统或框架中,用户是少不了的,Activiti,同样也给用户数据提供了一套用于管理的API,用户数据保存在ACT_ID_USER表中.

.创建用户

     在《【工作流前进之路】Activiti权限之用户组-数据查询》中,我曾介绍过,使用newGroup saveGroup方法来添加用户组.多个用户放在一块就是一个用户组.所以在创建一个用户的时候,和创建用户组基本上一样,具体代码如下:

<span style="font-family:Times New Roman;font-size:18px;">//使用newUser方法创建User实例
Useruser = identityService.newUser(party.getId());
//设置用户的各个属性
user.setFirstName(party.getFirstName());
user.setLastName(party.getLastName());
user.setEmail(party.getEmail());
user.setPassword(party.getPasswd());
//使用saveUser方法保存用户
identityService.saveUser(user);</span>

.密码验证

     一个系统中,用户的出现,就是用于登陆系统的,那么少不了的就是验证用户密码.IdentityService中提供了一个checkPassword方法,让开发者验证用户的密码.对于Activiti来说,用户就是一类数据,而账号是从属于某个用户的数据.需要申明的是,此处说的用户名密码验证是指ACT_ID_USER表的PWD_字段,验证的具体代码如下:

 

<span style="font-family:Times New Roman;font-size:18px;">public static voidmain(String[] args) {
//创建流程引擎
ProcessEngineengine = ProcessEngines.getDefaultProcessEngine();
//得到身份服务组件实例
IdentityServiceidentityService = engine.getIdentityService();//验证用户密码
System.out.println("验证密码结果:" + identityService.checkPassword("1","abc"));
System.out.println("验证密码结果:" + identityService.checkPassword("1","c"));
}</span>


.设置用户权限

     一个系统中,每个用户都是拥有这自己的权限,不停的权限,看见的内容是不一样的,Activiti,IdentityService中提供了SetAuthenticatedUserId方法用于将用户ID设置到当前的线程中,最终调用ThreadLocalset方法.具体的代码如下:


<span style="font-family:Times New Roman;font-size:18px;">//创建流程引擎
ProcessEngineengine = ProcessEngines.getDefaultProcessEngine();
//得到身份服务组件实例
finalIdentityService identityService = engine.getIdentityService();//设置当前线程的userId 为1
identityService.setAuthenticatedUserId("3");
System.out.println("当前线程UserId: " + Authentication.getAuthenticatedUserId());//启动两条线程
newThread() {
public  void run(){
try{
identityService.setAuthenticatedUserId("1");
Thread.sleep(5000);
System.out.println("线程1的userId: " +Authentication.getAuthenticatedUserId());}catch (Exception e) {}
}
}.start();newThread() {
public  void run(){
try{
identityService.setAuthenticatedUserId("2");
System.out.println("线程1的userId: " +Authentication.getAuthenticatedUserId());}catch (Exception e) {}
}
}.start();}</span>

.总结

     工作流中的用户没有那么神秘,每次用的时候可以想象咱们用过的系统,用户都用哪些功能,这些功能在Activiti中封装好了,咱们直接调用就行.

这篇关于【工作流前进之路】Activiti 权限之用户管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/811035

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如