Spring Security 與 Activiti 集成

Spring Security
Remote
1
11:43 PM · Nov 29 ,2025

1. 概述

Activiti 是一個開源的 BPM(業務流程管理)系統。 欲瞭解更多信息,請查看我們關於 Activiti 與 Java 的指南。

Activiti 8 不再提供身份管理支持。 我們將使用 Spring 框架進行身份管理。 在下面,我們將探討如何使用 Spring Security 進行身份管理。

2. Maven 依賴項

要將 Activiti 設置到 Spring Boot 項目中,請查看我們的上一篇文章。除了 activiti-spring-boot-starter,我們還需要 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 來處理 Security、Roles 和 Groups。 UserDetailsService 用於配置用户及其各自的 Groups 和 Roles。 ACTIVITI_USER 角色需要與 Activiti 的 TaskRuntime API 交互。

自動設置已認證的用户並與 TaskRuntime API 交互在本文中,我們瞭解到如何將 Activiti 與 Spring Security 集成。我們創建了一個 Spring Security 配置,該配置 自動設置已認證的用户並與 TaskRuntime API 交互。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.