activiti7实战教程(一)集成用户系统

activiti7实战教程(⼀)集成⽤户系统1. 新建SpringBoot项⽬版本号2.6.3
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
婴儿护理车<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId&le</groupId>
<artifactId>activitidemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>activitidemo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
iccn</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>flashbackup
</plugin>
</plugins>
</build>
</project>
2. 添加依赖
<!--⼯作流引擎-->
<!-- /artifact/org.activiti/activiti-spring-boot-starter -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M2</version>
<exclusions>
<exclusion>
<groupId&batis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--流程图⽚引擎-->
<!-- /artifact/org.activiti/activiti-image-generator -->
<dependency>
<groupId>org.activiti</groupId>
探针天线
<artifactId>activiti-image-generator</artifactId>
<version>7.1.0.M2</version>
<exclusions>
<exclusion>
<groupId&batis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
3. 添加Activiti7配置
spring:
activiti:
database-schema-update: true # 对所有表更新操作,如不存在则创建
history-level: full # 保存历史数据的最⾼级别
db-history-used: true # 使⽤历史表
check-process-definitions: true # 校验流程⽂件:true-开启(默认)、false-关闭
4. 去掉SpringSecurity框架,修改启动类上的SpringBootApplication注解如下:
@SpringBootApplication(
exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class,        })
public class ActivitidemoApplication {
public static void main(String[] args) {
SpringApplication.run(ActivitidemoApplication.class, args);
}
}
5. 集成四个类分别如下
UserDetailsServiceImpl、UserGroupManagerImpl、Activiti7ApplicationConfiguration、SecurityUtil无尘黑板
. import ditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import org.authority.SimpleGrantedAuthority;
import org.userdetails.User;
import org.userdetails.UserDetails;
import org.userdetails.UserDetailsService;
import org.userdetails.UsernameNotFoundException;
import java.util.List;
import java.util.stream.Collectors;
/**
* Activiti7配置⽂件-⽤户管理器
*
* @author Lenovo
*/
@AllArgsConstructor
public class UserDetailsServiceImpl implements UserDetailsService {
private UserRoleService userRoleService;
@Override
public UserDetails loadUserByUsername(String userId) throws UsernameNotFoundException {
//⽤户系统⽤的是三⽅免登,这⾥⽤userId作为唯⼀标识
LambdaQueryWrapper<UserRole> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UserRole::getUserId, userId);
List<UserRole> userRoles = userRoleService.list(wrapper);
List<SimpleGrantedAuthority> authorities = userRoles.stream().map(x -> new RoleId().toString())).Lis
//这⾥要填上⽤户的账号、密码(可以不填)和⾓⾊集合
return new User(userId, "", authorities);
}
}
import org.activiti.api.runtime.shared.identity.UserGroupManager; import t.annotation.Primary;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Activiti7配置⽂件-⽤户组管理器
*
* @author Lenovo
*/
@Service
@Primary
public class UserGroupManagerImpl implements UserGroupManager {    @Override
public List<String> getUserGroups(String s) {
return null;
}
@Override
public List<String> getUserRoles(String s) {
return null;
}
@Override
public List<String> getGroups() {
return null;
}
@Override
public List<String> getUsers() {
return null;
}
}
import t.annotation.Bean;
import t.annotation.Configuration;
import org.userdetails.UserDetailsService;
import org.pto.bcrypt.BCryptPasswordEncoder;
import org.pto.password.PasswordEncoder;
import javax.annotation.Resource;
/**
* Activiti7配置⽂件
*
* @author Lenovo
*/
@Configuration
public class Activiti7ApplicationConfiguration {
@Resource
private UserRoleService userRoleService;
@Bean
public UserDetailsService activitiUserDetailsService() {
return new UserDetailsServiceImpl(userRoleService);
开关电源模块并联供电系统
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.Authentication;
import org.GrantedAuthority;
import org.ontext.SecurityContextHolder;
import org.ontext.SecurityContextImpl;
import org.userdetails.UserDetails;
import org.userdetails.UserDetailsService;
import org.springframework.stereotype.Component;
import java.util.Collection;
/**
* Activiti7配置⽂件
*
* @author Lenovo
*/
@Component
public class SecurityUtil {
@Autowired
private UserDetailsService userDetailsService;
public void logInAs(String username) {
UserDetails user = userDetailsService.loadUserByUsername(username);
if (user == null) {
throw new IllegalStateException("User " + username + " doesn't exist, please provide a valid user");        }
SecurityContextHolder.setContext(new SecurityContextImpl(new Authentication() {
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
Authorities();
}

本文发布于:2024-09-24 21:22:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/100568.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:添加   引擎   存在   历史数据   教程
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议