ITPub博客

首页 > 应用开发 > Java > flowable 整合 springboot

flowable 整合 springboot

Java 作者:good000 时间:2021-10-20 17:21:59 0 删除 编辑

1.pom


<parent>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-parent</artifactId>

        <version>2.5.2</version>

        <relativePath /> <!-- lookup parent from repository -->

    </parent>

 

 

    <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <java.version>1.8</java.version>

        <flowable.version>6.6.0</flowable.version>

    </properties>

 

         <!--flowable工作流依赖-->

        <dependency>

            <groupId>org.flowable</groupId>

            <artifactId>flowable-spring-boot-starter</artifactId>

            <version>${flowable.version}</version>

        </dependency>

         <!-- -->

        <dependency>

         <groupId>org.flowable</groupId>

         <artifactId>flowable-json-converter</artifactId>

         <version>${flowable.version}</version>

        </dependency>

        <!-- app 依赖 包含 rest,logic,conf -->

        <dependency>

         <groupId>org.flowable</groupId>

         <artifactId>flowable-ui-modeler-rest</artifactId>

         <version>${flowable.version}</version>

        </dependency>

        <dependency>

         <groupId>org.flowable</groupId>

         <artifactId>flowable-ui-modeler-logic</artifactId>

         <version>${flowable.version}</version>

         <exclusions>

         <exclusion>

         <groupId>org.apache.logging.log4j</groupId>

         <artifactId>log4j-slf4j-impl</artifactId>

         </exclusion>

         </exclusions>

        </dependency>

        <dependency>

         <groupId>org.flowable</groupId>

         <artifactId>flowable-ui-modeler-conf</artifactId>

         <version>${flowable.version}</version>

        </dependency>

2. FlowableConfig配置类


package org.fh.config;

 

import org.flowable.spring.SpringProcessEngineConfiguration;

import org.flowable.spring.boot.EngineConfigurationConfigurer;

import org.springframework.context.annotation.Configuration;

import org.springframework.stereotype.Controller;

 

/**

 * 说明:Flowable配置

 * 作者:FH Admin

 * from:fhadmin.cn

 */

@Controller

@Configuration

public class FlowableConfig implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {

    

    @Override

    public void configure(SpringProcessEngineConfiguration engineConfiguration) {

        engineConfiguration.setActivityFontName("宋体");

        engineConfiguration.setLabelFontName("宋体");

        engineConfiguration.setAnnotationFontName("宋体");

    }

    

}

3.重写 SecurityUtils 重构流程编辑器获取用户信息


package org.flowable.ui.common.security;

 

import org.fh.util.Jurisdiction;

import org.flowable.common.engine.api.FlowableIllegalStateException;

import org.flowable.idm.api.User;

import org.flowable.ui.common.model.RemoteUser;

import org.springframework.security.core.Authentication;

import org.springframework.security.core.context.SecurityContext;

import org.springframework.security.core.context.SecurityContextHolder;

 

import java.util.ArrayList;

import java.util.List;

 

/**

 * 说明:重构流程编辑器获取用户信息

 * 作者:FH Admin

 * from:fhadmin.cn

 */

public class SecurityUtils {

 

    private static User assumeUser;

    

    private static SecurityScopeProvider securityScopeProvider = new FlowableSecurityScopeProvider();

 

    private SecurityUtils() {

    }

 

    /**

     * Get the login of the current user.

     */

    public static String getCurrentUserId() {

        User user = getCurrentUserObject();

        if (user != null) {

            return user.getId();

        }

        return null;

    }

 

    /**

     * @return the {@link User} object associated with the current logged in user.

     */

    public static User getCurrentUserObject() {

        if (assumeUser != null) {

            return assumeUser;

        }

 

        RemoteUser user = new RemoteUser();

        user.setId(Jurisdiction.getUsername());

        user.setDisplayName(Jurisdiction.getName());

        user.setFirstName(Jurisdiction.getName());

        user.setLastName(Jurisdiction.getName());

        user.setEmail("admin@flowable.com");

        user.setPassword("123456");

        List<String> pris = new ArrayList<>();

        pris.add(DefaultPrivileges.ACCESS_MODELER);

        pris.add(DefaultPrivileges.ACCESS_IDM);

        pris.add(DefaultPrivileges.ACCESS_ADMIN);

        pris.add(DefaultPrivileges.ACCESS_TASK);

        pris.add(DefaultPrivileges.ACCESS_REST_API);

        user.setPrivileges(pris);

        return user;

    }

    

    public static void setSecurityScopeProvider(SecurityScopeProvider securityScopeProvider) {

        SecurityUtils.securityScopeProvider = securityScopeProvider;

    }

 

    public static SecurityScope getCurrentSecurityScope() {

        SecurityContext securityContext = SecurityContextHolder.getContext();

        if (securityContext != null && securityContext.getAuthentication() != null) {

            return getSecurityScope(securityContext.getAuthentication());

        }

        return null;

    }

 

    public static SecurityScope getSecurityScope(Authentication authentication) {

        return securityScopeProvider.getSecurityScope(authentication);

    }

 

    public static SecurityScope getAuthenticatedSecurityScope() {

        SecurityScope currentSecurityScope = getCurrentSecurityScope();

        if (currentSecurityScope != null) {

            return currentSecurityScope;

        }

        throw new FlowableIllegalStateException("User is not authenticated");

    }

 

    public static void assumeUser(User user) {

        assumeUser = user;

    }

 

    public static void clearAssumeUser() {

        assumeUser = null;

    }

}

Good Mai

————————————————

版权声明:本文为CSDN博主「good123mai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/good123mai/article/details/120859920



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/70008680/viewspace-2838412/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2021-10-20

  • 博文量
    10
  • 访问量
    1946