`
zhoumeng87
  • 浏览: 70360 次
文章分类
社区版块
存档分类
最新评论

flowable 绕过idm自带的身份验证

 
阅读更多
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.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;
	}
}
 

 

1
0
分享到:
评论

相关推荐

    Springboot集成flowable-modeler(6.4.1) 实现免登(BPMN组件已汉化)

    通过浏览器访问应用,验证Flowable Modeler是否能够正常运行,设计流程是否已经汉化,用户是否能实现免登。 集成过程中可能会遇到的问题包括但不限于数据库连接问题、权限认证异常、前端页面显示不正常等。解决这些...

    flowable-idm.war

    flowable-idm

    v6.4.1 flowable war包

    IDM与Flowable的其他组件紧密集成,确保安全的访问控制和流程参与者的身份验证。 3. **flowable-modeler**: Flowable Modeler是用于流程建模的工具,提供了一个直观的用户界面,使得非技术人员也能设计和修改流程...

    springboot + flowable + modeler + idm

    SpringBoot + Flowable + Modeler + IDM 是一个高效的企业级工作流管理系统,它结合了SpringBoot的便捷开发特性、Flowable的流程引擎能力、Modeler的流程设计工具以及IDM的身份管理和权限控制功能。这个组合提供了从...

    可视化流程配置flowable-ui-modeler源码 免登录

    通过源码修改,我们可以了解到这个版本的Modeler已经不再需要通过Flowable IDM进行登录验证,这为开发团队提供了更大的灵活性,可以根据组织的特定安全需求来实现自己的身份验证解决方案。 在源码中,开发者可能对`...

    flowable-ui:整合Flowable官方的Rest包(flowable-modeler,flowable-idm,flowable-task,flowable-admin,flowable-rest),后端SpringBoot,前端Nginx,前后台分离部署,表单设计器汉化处理,提供在线体验地址

    flowable-idm身份管理应用。为所有Flowable UI应用提供单点登录认证功能,并且为拥有IDM管理员权限的用户提供了管理用户、组与权限的功能flowable-task运行时任务应用。提供了启动流程实例、编辑任务表单、完成任务...

    Flowable 6.6.0 Applications.docx

    Flowable IDM 是身份管理工具,负责管理用户、组、角色和权限。它帮助企业维护组织结构,控制访问权限,并且支持与外部身份提供商的集成,如LDAP或Active Directory,实现单点登录(SSO)功能。 4. **Flowable ...

    flowable-6.5.1.28 架包资源

    Flowable是一款开源的工作流引擎,它基于Activiti进行了优化和扩展,提供了强大的流程定义、执行和管理能力。在"flowable-6.5.1.28"这个版本中,我们有完整的jar包资源,这使得我们可以深入研究并利用Flowable的各项...

    activiti画图工具

    Flowable是一款强大的业务流程管理(BPM)和工作流引擎,它在企业级应用中广泛使用,用于自动化工作流程和业务流程。Flowable提供了一套完整的解决方案,包括流程设计、执行、监控和优化。在本话题中,我们将重点...

    flowable-6.4.1.wars.zip

    flowable 6.4.1版本的 五个wars包 flowable-admin.war flowable-idm.war flowable-modeler.war flowable-rest.war flowable-task.war

    flowable-6.4.2.zip

    5. **安全增强**:安全是任何软件的重要组成部分,Flowable 6.4.2可能增强了身份验证、授权和隐私保护机制,以保护敏感业务数据。 6. **监控和日志**:可能会提供更详尽的监控和日志记录功能,帮助管理员更好地诊断...

    Flowable 6.4.0 官方的安装包Tomcat版本

    Flowable提供了四个核心模块:IDM(Identity Management)、APP(App Engine)、ADMIN(Admin)和ENGINE(Process Engine)。IDM负责用户、组和权限的管理;APP用于构建自定义的业务应用;ADMIN提供了流程管理和监控...

    flowable 6.3.0

    flowable 6.3.0 ZIP包,包含了文档、lib包,5个War包flowable-admin.war,flowable-idm.war,flowable-modeler.war,flowable-rest.war,flowable-task.war

    flowable 6.2官方汉化文档带运行demo

    - 包含示例应用程序,如Flowable Modeler(流程设计器)、Flowable Admin(管理控制台)、Flowable IDM(身份管理)和Flowable Task(任务管理)。 - 提供REST API,可以方便地通过HTTP与Flowable引擎通信。 要使用...

    Flowable BPMN 用户手册 中文版 (v 6.3.0).pdf

    也有许多Flowable应用(Flowable Modeler, Flowable Admin, Flowable IDM 与 Flowable Task),提供了直接可用的UI示例,可以使用流程与任务。 所有使用Flowable方法的共同点是核心引擎。核心引擎是一组服务的...

    flowable-engine-flowable-6.7.2.zip

    Flowable是一款功能强大的开源工作流引擎,主要用于处理业务流程自动化和任务管理。6.7.2版本是Flowable的一个稳定版本,提供了许多改进和新特性。在这个zip压缩包"flowable-engine-flowable-6.7.2.zip"中,包含了...

    Flowable BPMN 用户手册 (v 6.5.pdf

    同时,Flowable还提供了REST API和多个应用(如Flowable Modeler、Flowable Admin、Flowable IDM和Flowable Task),这些应用提供了直观的UI界面,可以帮助用户进行流程设计和管理任务。 #### 开始使用Flowable ...

    flowable.rar

    流程权限:http://localhost:8080/flowable-idm 流程监控:http://localhost:8080/flowable-admin 流程审批:http://localhost:8080/flowable-task 流程Rest API:http://localhost:8080/flowable-rest/docs/ 默认用户名...

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

    6. **插件扩展**:Flowable设计了丰富的插件接口,允许开发者添加自定义功能,如用户身份验证、邮件通知等,满足个性化需求。 7. **RESTful API**:为了便于与其他系统集成,Flowable提供了RESTful API,使得开发者...

    flowable-demo.rar

    在经过几天深入阅读源码后,开发者可能已经成功地将Flowable的流程设计器与身份管理系统(Identity Management,IDM)分离,并实现了无登录的BPMN组件汉化。 首先,我们需要理解Flowable的核心概念。Flowable引擎...

Global site tag (gtag.js) - Google Analytics