【工作流前进之路】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设置到当前的线程中,最终调用ThreadLocal的set方法.具体的代码如下:

<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中封装好了,咱们直接调用就行.

时间: 2024-11-05 06:24:40

【工作流前进之路】Activiti 权限之用户管理的相关文章

003-文本处理、排序、统计及bash特性、用户组权限、用户管理配置文件

l  1.文本处理命令 1.)cat(concatenate):连接并显示 tac:倒序显示文件 -n(number):显示行号 -E(show-ends):显示行结束符 2.)more.less:分屏显示 more: 向后翻,翻到尾部退出 less: 与打开man使用相同 3.)head:查看前n行 Tail:查看后n行 -n(lines):指定显示n行 tail -f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容: 4.)cut:文本剪切 -d(delimiter):指定字段分隔

Linux 权限和用户管理

权限 r,w,x 文件: r:可读,可以使用类似cat等命令查看文件内容 w:可写,可以编辑或删除此文件 x:可执行,可以命令提示符下当做命令提交给内存运行 目录 r:可以对此目录执行ls以列出内部的所有文件 w:可以在此目录创建文件 x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息 用户 1.which 查看命令文件文字 2.useradd 添加用户 -u UID -g GID (基本组) -c 添加注释信息 -d 指定家目录 -s 指定shell路径 -m -k  复

MySQL权限和用户管理

Mysql权限系统(由mysql权限表进行控制user和db)通过下面两个方面进行认证: 1)对于连接的用户进行身份验证,合法的通过验证,不合法的拒绝连接. 2)对于通过连接认证的用户,可以在合法的范围内对数据库进行操作. Mysql的权限表在数据库启动时就被载入内存,当用户通过身份认证后,就可以在内存中进行相应的权限存取,对数据库进行相应的操作.在权限存取的过程中,mysql数据库会用到其内部"mysql"数据库的user.db.host权限表.其中最重要的是user权限表,其内容主

linux文件权限、用户管理

1.描述linux目录结构以及目录结构命名规定单根形态的倒置树形结构文件名不能超过255个字节包括路径在内的文件名称最长4095个字节 2.显示/etc目录下,所有以.d结尾的文件或目录ls /etc/*.d 3.显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录ls /etc/[mnrp]*.conf 4.创建/app/rootdir目录,并复制/root下所有文件到该目录内, 要求保留原有权限mkdir /app/rootdircp -a /root /app/roo

MySQL用户管理及权限设置

mysql 用户管理和权限设置 用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; 创建 mysql> create user zx_root IDENTIFIED by 'xxxxx'; //identified by 会将纯文本密码加密作为散列值存储 修改 mysql>rename user feng to newuser://mysql 5之后可以使用,之前需要使用update 更新use

1.5 -用户管理

1.5 用户管理 内容: 1. 设置命令和脚本开机自启动 2. 用户相关的配置文件和目录 3. 用户管理命令 4. sudo临时为普通用户提权 5. yum相关知识   让一个命令或脚本开机自启动的方法 1) 脚本放在/etc/rc.local 2) chkconfig 让一个命令或脚本用chkconfig开机自启动的方法 (1) 这个脚本 存放在 /etc/init.d下面 (2) 脚本要有x(执行)权限 (3) 脚本开始必须有可以被chkconfig识别的标记 (4) 把脚本加入到chkco

浅谈Activiti工作流引擎用户管理

一.前言 近期做了一个简单的财务管理系统,在工作审批模块中运用了工作流引擎.在对比了JBPM与Activiti后,毅然而然决定使用Activiti.本文对Activiti不做过多的介绍,重点在于分析其自身的用户管理模块.刚接触,也只是阐述下自己的个人项目经验.若有不足之处,还望指正. 二.Activiti的用户管理 数据库表: act_id_user表: act_id_group表: act_id_membership表: 从图中可以看出,activiti的用户模块只有用户与组为多对多的关系,仅

学习之路(二)浅谈:bash及其特性,命令历史以及用户管理及权限,shell的类型

过了一周了,进度似乎有点懈怠,不过过了周末重整旗鼓啦shell(外壳)GUI:Gnome,KDE,xfceCLI:sh,csh,ksh,bashbash(父进程)-----bash(子进程)他们相互独立彼此不知命令历史:historybash支持的引号:' '命令替换(键盘~的按键)" "弱引用,可以实现变量替换 强引用,不完成变量替换文件名通配符: :任意字符? :任意单个字符[ ]:匹配指定范围内的任意单个字符bash的配置文件全局配置/etc/profile : /etc/pro

Linux之用户管理与权限控制(上)

早期Linux系统设计为了能够实现多用户.多进程高效的利用服务器资源,在此种情况下,为了能够保证用户与用户之间的文件不被随意的访问及修改.删除等操作,用户.组的管理能在某种程序上实现管理用户或批量管理用户.由于Linux的设计哲学思想『一切皆文件』,用户对设备的访问就是对文件的访问. 一.用户与组 Linux下有三类用户 1.超级用户: root 具有操作系统的一切权限 UID 值为0 2.普通用户: 普通用户具有操作系统有限的权限, UID值 500+ 3.伪用户: 是为了方便系统管理, 满足