activiti入门七(identityService介绍)
2017-03-01 11:42
281 查看
在Activiti中内置了一套简单的对用户和用户组的支持,用于满足基本的业务需求。org.activiti.engine.identity该包用来进行身份管理和认证,其功能依托于IdentityService接口。本文主要介绍下如何通过IdentityService实现用户,用户组的增删改查等常用功能。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
本段代码主要实现了以下功能
1. 创建用户对象 identityService.newUser(String userId);
2. 保存用户对象到数据库 identityService.saveUser(User user);
3. 创建查询对象 identityService.createUserQuery();
4. 用户对象的删除 identityService.deleteUser(Strign userId);
用户组,顾名思义,即可一组用户,他们拥有操作某些功能的权限。
在activiti中,用户组的类型分为两种,即assignment和security-role.前者代表一种普通的岗位角色,是用户分配业务中的功能权限。后者是安全角色,可以从全局管理用户组织以及整个流程的状态。
不过在项目中,貌似按照这种类型设置的很少,都是根据具体情况进行扩展的。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
用户组的代码功能与用户的功能类似,只是把用户改为用户组对象而已。这里不做介绍。
参考上面用户组的介绍,那么用户与用户组应该是个N:N的关系。如果系统仅仅有用户和用户组,那是远远不够的,还需要将用户与用户组关联起来。
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
identityService主要是提供基础的用户管理以及身份认证。用户任务中的用户和组的设定,参看后面章节的taskService的介绍
用户管理
/** * 用户管理 */ @Test public void testUser(){ User user = identityService.newUser("Jonathan"); user.setFirstName("Jonathan"); user.setLastName("chang"); user.setEmail("whatlookingfor@gmail.com"); user.setPassword("123"); //保存用户到数据库 identityService.saveUser(user); //用户的查询 User userInDb = identityService.createUserQuery().userId("Jonathan").singleResult(); Assert.notNull(userInDb); //验证用户名和密码 Assert.isTrue(identityService.checkPassword("Jonathan","123")); //删除用户 identityService.deleteUser("Jonathan"); //验证是否删除成功 userInDb = identityService.createUserQuery().userId("Jonathan").singleResult(); Assert.isNull(userInDb); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
本段代码主要实现了以下功能
1. 创建用户对象 identityService.newUser(String userId);
2. 保存用户对象到数据库 identityService.saveUser(User user);
3. 创建查询对象 identityService.createUserQuery();
4. 用户对象的删除 identityService.deleteUser(Strign userId);
用户组管理
用户组,顾名思义,即可一组用户,他们拥有操作某些功能的权限。 在activiti中,用户组的类型分为两种,即assignment和security-role.前者代表一种普通的岗位角色,是用户分配业务中的功能权限。后者是安全角色,可以从全局管理用户组织以及整个流程的状态。
不过在项目中,貌似按照这种类型设置的很少,都是根据具体情况进行扩展的。
/** * 用户组管理 */ @Test public void testGroup(){ //创建用户组对象 Group group = identityService.newGroup("hr"); group.setName("hr用户组"); group.setType("assignment"); //保存用户组 identityService.saveGroup(group); //验证是否保存成功 Group groupInDb = identityService.createGroupQuery().groupId("hr").singleResult(); Assert.notNull(groupInDb); //删除用户组 identityService.deleteGroup("hr"); //验证是否删除成功 groupInDb = identityService.createGroupQuery().groupId("hr").singleResult(); Assert.isNull(groupInDb); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
用户组的代码功能与用户的功能类似,只是把用户改为用户组对象而已。这里不做介绍。
用户与用户组的关系
参考上面用户组的介绍,那么用户与用户组应该是个N:N的关系。如果系统仅仅有用户和用户组,那是远远不够的,还需要将用户与用户组关联起来。/** * 用户 用户组管理 */ @Test public void testUserAndGroupMemership(){ //创建并保存用户组 Group group = identityService.newGroup("hr"); group.setName("hr用户组"); group.setType("assignment"); //保存用户组 identityService.saveGroup(group); User user = identityService.newUser("Jonathan"); user.setFirstName("Jonathan"); user.setLastName("chang"); user.setEmail("whatlookingfor@gmail.com"); user.setPassword("123"); //保存用户到数据库 identityService.saveUser(user); //将用户Jonathan加入到用户组hr中 identityService.createMembership("Jonathan","hr"); //查询属于HR用户组的用户 User userInGroup = identityService.createUserQuery().memberOfGroup("hr").singleResult(); Assert.notNull(userInGroup); Assert.isTrue(userInGroup.getId().equals("Jonathan")); //查询用户所属组 Group groupContainsUser = identityService.createGroupQuery().groupMember("Jonathan").singleResult(); Assert.notNull(groupContainsUser); Assert.isTrue(groupContainsUser.getId().equals("hr")); }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
额外说明
identityService主要是提供基础的用户管理以及身份认证。用户任务中的用户和组的设定,参看后面章节的taskService的介绍
相关文章推荐
- activiti入门七(identityService介绍)
- activiti入门十一(表单的介绍以及formService使用)
- activiti入门十(RuntimeService介绍)
- Android入门:Service入门介绍
- SSB(SQLservice Service Broker) 入门实例介绍
- Android Service入门用介绍
- activiti工作流6大service服务的简单介绍
- Activiti第一篇【介绍、配置开发环境、快速入门】
- Android入门:Service入门介绍
- Activiti入门教程十(详解历史服务组件HistoryService)
- Activiti入门教程十(详解历史服务组件HistoryService)
- Activiti第一篇【介绍、配置开发环境、快速入门】
- SSB(SQLservice Service Broker) 入门实例介绍
- Activiti入门教程九(玩转RuntimeService流程控制API)
- ServiceWorker入门介绍一
- Android入门:Service入门介绍
- Android入门:Service入门介绍
- Android入门:Service入门介绍
- activiti入门一(简单介绍)
- IdentityServer3——入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 介绍