1. 概述
Activiti 是一個開源的 BPM(業務流程管理)系統。 欲瞭解更多信息,請查看我們的 Activiti 與 Java 指南。
Activiti 8 不再提供身份管理支持。 我們將使用 Spring 框架進行身份管理。 在後續內容中,我們將探討如何使用 Spring Security 進行身份管理。
2. Maven 依賴
為了在 Spring Boot 項目中設置 Activiti,請參考我們之前的文章。除了 <em >activiti-spring-boot-starter</em >,我們還需要添加 spring-boot-starter-security 依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>3. 使用 Spring Security 進行身份管理
為了使用 Spring Security 提供的用户管理功能,可以提供如下的自定義 Spring Security 配置類:
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(auth -> auth
.requestMatchers("/protected-process*")
.authenticated()
.anyRequest()
.permitAll())
.formLogin(login -> login
.loginPage("/login")
.defaultSuccessUrl("/homepage")
.failureUrl("/login?error=true")
.permitAll())
.csrf(AbstractHttpConfigurer::disable)
.logout(logout -> logout.logoutSuccessUrl("/login"));
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
User.UserBuilder users = User.withDefaultPasswordEncoder();
UserDetails user = users.username("user")
.password("{noop}pass")
.authorities("ROLE_ACTIVITI_USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}Activiti 8 依賴 Spring Security 來處理安全、角色和組。UserDetailsService 用於配置用户及其相應的組和角色。ACTIVITI_USER 角色需要與 Activiti 的 TaskRuntime API 交互。
4. 結論
在本文中,我們學習瞭如何將 Activiti 集成到 Spring Security 中。我們創建了一個 Spring Security 配置,它 自動設置已認證的用户並與 TaskRuntime API 交互。