`
fhadmin框架平台
  • 浏览: 19648 次
文章分类
社区版块
存档分类
最新评论

flowable 6.6.0 更新变动,相对于6.5.0版本,导致流程设计器免登录验证失败

 
阅读更多

前沿:

flowable和activiti是同一个团队开发的,activiti先,flowable后 。所以,flowable 算是 activiti的升级版。
flowable 确实要比activiti功能更完善。未来肯定flowable 是主流趋势,当下也已经是主流了。

目前最新版本的 flowable 6.6.0 版本,相对于6.5.0版本配置的免登录方案,对6.6.0版本就无效了

通过查看对比flowable源码,发现内置的 Security 权限代码有不少改动,这个是导致免登陆失败的根源

需要重新重构flowable源码的两个函数,如下

1. 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:www.fhadmin.org
 */
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;
	}
}

2.FlowableUiSecurityAutoConfiguration

 

package org.flowable.ui.common.security;

import org.flowable.spring.boot.FlowableSecurityAutoConfiguration;
import org.flowable.spring.boot.idm.IdmEngineServicesAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration;
import org.springframework.context.annotation.Configuration;

/**
 * 说明:重构FlowableUiSecurity自动配置
 * 作者:FH Admin
 * from:www.fhadmin.org
 */
@Configuration(proxyBeanMethods = false)
@AutoConfigureAfter({
        IdmEngineServicesAutoConfiguration.class,
})
@AutoConfigureBefore({
        FlowableSecurityAutoConfiguration.class,
        OAuth2ClientAutoConfiguration.class,
})
public class FlowableUiSecurityAutoConfiguration {}

 

分享到:
评论

相关推荐

    Flowable 6.6.0 表单用户指南.pdf

    Flowable 6.6.0是一款强大的工作流和业务流程管理(BPM)平台,它提供了表单引擎来支持流程表单的创建和管理。本文将详细阐述Flowable 6.6.0表单引擎的配置、数据库操作、部署、日志记录、表单API以及与Spring框架和...

    Flowable-6.5.0 用户手册.pdf

    Flowable 是一个使用 Java 编写的轻量级业务流程引擎,Flowable 流程引擎可用于部署 BPMN 2.0 流程定义,创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。Flowable 可以十分...

    flowable6.6.0 源码包和部署包

    在Flowable 6.6.0版本中,包含了源码包和部署包,这对于开发者和系统管理员来说是非常有价值的资源。源码包允许开发者深入理解Flowable的内部工作原理,进行定制化开发,而部署包则方便快速地在生产环境中部署和运行...

    Flowable 6.6.0 应用程序.pdf

    Flowable是一个用Java编写的轻量级业务流程引擎。Flowable是Activiti的一个分支。本文档对Flowable 6.6.0身份管理、建模、任务和管理等应用程序,并对应用安装,配置、国际、自定义bean部署等内容进行了比较详细的...

    Flowable 6.6.0BPMN用户指南 第二部分 BPMN 2.0的构造

    Flowable 6.6.0BPMN用户指南(第二部分)BPMN 2.0的构造:8.1 自定义扩展、8.2 事件、8.3 序列流(Sequence Flow)、8.4 网关(Gateways)、8.5 任务(Tasks)、8.6 子流程(Sub-Processes)和调用活动(Call ...

    flowable-6.6.0.zip

    5. **丰富的工具集**:Flowable附带了管理工具,如流程设计器,用于可视化创建和编辑流程图,以及监控工具,用于查看流程实例的状态和历史。 在"flowable-6.6.0.zip"压缩包中,我们可以找到以下几个关键组件: - *...

    Flowable 6.6.0 应用指南 - Eclipse设计器.pdf

    2021年3月最新修订版。Flowable附带了一个Eclipse插件,即Flowable Eclipse设计器(Flowable Eclipse Designer),可用于图形化地建模、测试和部署BPMN 2.0流程

    Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT)

    Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT) 是一个关于Flowable工作流引擎的详细指南,该版本是开发中的一个快照版本。Flowable是一款开源的业务流程管理(BPM)和工作流系统,适用于企业级应用。它支持BPMN 2.0标准...

    Flowable-6.5.0 用户手册(中文版).zip

    Flowable-6.5.0 用户手册(中文版).pdf 高清PDF版flowable 6.5.0 的中文手册完整版,以及 BPMN相关的详细。内容详细完整 高清PDF版flowable 6.5.0 的中文手册完整版,以及 BPMN相关的详细。内容详细完整

    flowable-engine-flowable-6.6.0.zip

    9. **流程可视化和建模工具**: Flowable提供了Web界面的流程设计器,使得非技术人员也能通过拖拽方式构建流程图,降低了流程设计的门槛。 10. **社区和文档**: Flowable拥有活跃的社区,提供了详尽的文档和示例,...

    flowable-engine-flowable-6.5.0.zip(官方源码)

    在Flowable 6.5.0版本中,我们可以深入研究其核心组件、架构设计以及实现机制,这对于理解工作流管理系统的运作原理以及开发基于Flowable的应用程序至关重要。 1. **Flowable核心组件**: - **流程引擎(Process ...

    Flowable 6.6.0 BPMN用户指南 第三部分.pdf

    2021年3月最新修订版。Flowable 6.6.0 BPMN用户指南 第三部分(9)表单 (10)流程实例迁移 (11)JPA (12)历史 (13)身份管理 (14)REST API(15)CDI集成 (16)LDAP集成 (17)高级用例 (18)Tooling

    Flowable 6.6.0 事件注册用户指南.pdf

    用户指南的每个部分都强调了Flowable 6.6.0对事件处理的灵活性和对不同场景的适用性,旨在帮助开发者利用Flowable事件注册引擎构建稳定、高效的业务流程和案例管理。 以上总结的知识点是基于文档内容的梳理与解释,...

    flowable-engine-flowable-6.5.0.rar(GitHub源码)

    这个“flowable-engine-flowable-6.5.0.rar”压缩包包含的是Flowable 6.5.0版本的源代码,可以直接从GitHub获取,尽管Git的下载速度可能不尽如人意。 Flowable引擎是专门为处理业务流程自动化设计的,它提供了模型...

    Flowable 6.6.0 BPMN用户指南 第一部分.pdf

    2021年3月最新修订版。BPMN用户指南第一部分,一共包含七章内容:(1)入门 (2)配置 (3)The Flowable API (4)Spring集成 (5)Spring Boot (6)部署 (7)BPMN 2.0简介

    Flowable 6.6.0 Applications.docx

    Flowable 是一个基于Java开发的轻量级业务流程引擎,专为实现高效的企业流程自动化而设计。它提供了多个应用程序,包括Flowable Modeler、Flowable Admin、Flowable IDM(Identity Management)以及Flowable Task,...

    Flowable BPMN 用户手册 (v 6.5.0-SNAPSHOT).pdf

    本资源由 [ 分享牛 Flowable 中国社区 ] 翻译,直接从 http://www.shareniu.com/flowable6.5_zh_document/bpm/index.html 整理出离线版本(PDF版本)

    Flowable-6.5.0 用户手册中文版.pdf

    在这个版本中,Flowable提供了丰富的功能,包括流程设计、流程执行、任务管理、事件处理以及集成能力。 工作流引擎是业务流程管理系统的核心,它负责解析流程定义,执行流程实例,并对流程中的任务进行调度。...

Global site tag (gtag.js) - Google Analytics