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; } }
相关推荐
通过浏览器访问应用,验证Flowable Modeler是否能够正常运行,设计流程是否已经汉化,用户是否能实现免登。 集成过程中可能会遇到的问题包括但不限于数据库连接问题、权限认证异常、前端页面显示不正常等。解决这些...
flowable-idm
IDM与Flowable的其他组件紧密集成,确保安全的访问控制和流程参与者的身份验证。 3. **flowable-modeler**: Flowable Modeler是用于流程建模的工具,提供了一个直观的用户界面,使得非技术人员也能设计和修改流程...
SpringBoot + Flowable + Modeler + IDM 是一个高效的企业级工作流管理系统,它结合了SpringBoot的便捷开发特性、Flowable的流程引擎能力、Modeler的流程设计工具以及IDM的身份管理和权限控制功能。这个组合提供了从...
通过源码修改,我们可以了解到这个版本的Modeler已经不再需要通过Flowable IDM进行登录验证,这为开发团队提供了更大的灵活性,可以根据组织的特定安全需求来实现自己的身份验证解决方案。 在源码中,开发者可能对`...
flowable-idm身份管理应用。为所有Flowable UI应用提供单点登录认证功能,并且为拥有IDM管理员权限的用户提供了管理用户、组与权限的功能flowable-task运行时任务应用。提供了启动流程实例、编辑任务表单、完成任务...
Flowable IDM 是身份管理工具,负责管理用户、组、角色和权限。它帮助企业维护组织结构,控制访问权限,并且支持与外部身份提供商的集成,如LDAP或Active Directory,实现单点登录(SSO)功能。 4. **Flowable ...
Flowable是一款开源的工作流引擎,它基于Activiti进行了优化和扩展,提供了强大的流程定义、执行和管理能力。在"flowable-6.5.1.28"这个版本中,我们有完整的jar包资源,这使得我们可以深入研究并利用Flowable的各项...
Flowable是一款强大的业务流程管理(BPM)和工作流引擎,它在企业级应用中广泛使用,用于自动化工作流程和业务流程。Flowable提供了一套完整的解决方案,包括流程设计、执行、监控和优化。在本话题中,我们将重点...
flowable 6.4.1版本的 五个wars包 flowable-admin.war flowable-idm.war flowable-modeler.war flowable-rest.war flowable-task.war
5. **安全增强**:安全是任何软件的重要组成部分,Flowable 6.4.2可能增强了身份验证、授权和隐私保护机制,以保护敏感业务数据。 6. **监控和日志**:可能会提供更详尽的监控和日志记录功能,帮助管理员更好地诊断...
Flowable提供了四个核心模块:IDM(Identity Management)、APP(App Engine)、ADMIN(Admin)和ENGINE(Process Engine)。IDM负责用户、组和权限的管理;APP用于构建自定义的业务应用;ADMIN提供了流程管理和监控...
flowable 6.3.0 ZIP包,包含了文档、lib包,5个War包flowable-admin.war,flowable-idm.war,flowable-modeler.war,flowable-rest.war,flowable-task.war
- 包含示例应用程序,如Flowable Modeler(流程设计器)、Flowable Admin(管理控制台)、Flowable IDM(身份管理)和Flowable Task(任务管理)。 - 提供REST API,可以方便地通过HTTP与Flowable引擎通信。 要使用...
也有许多Flowable应用(Flowable Modeler, Flowable Admin, Flowable IDM 与 Flowable Task),提供了直接可用的UI示例,可以使用流程与任务。 所有使用Flowable方法的共同点是核心引擎。核心引擎是一组服务的...
Flowable是一款功能强大的开源工作流引擎,主要用于处理业务流程自动化和任务管理。6.7.2版本是Flowable的一个稳定版本,提供了许多改进和新特性。在这个zip压缩包"flowable-engine-flowable-6.7.2.zip"中,包含了...
同时,Flowable还提供了REST API和多个应用(如Flowable Modeler、Flowable Admin、Flowable IDM和Flowable Task),这些应用提供了直观的UI界面,可以帮助用户进行流程设计和管理任务。 #### 开始使用Flowable ...
流程权限:http://localhost:8080/flowable-idm 流程监控:http://localhost:8080/flowable-admin 流程审批:http://localhost:8080/flowable-task 流程Rest API:http://localhost:8080/flowable-rest/docs/ 默认用户名...
6. **插件扩展**:Flowable设计了丰富的插件接口,允许开发者添加自定义功能,如用户身份验证、邮件通知等,满足个性化需求。 7. **RESTful API**:为了便于与其他系统集成,Flowable提供了RESTful API,使得开发者...
在经过几天深入阅读源码后,开发者可能已经成功地将Flowable的流程设计器与身份管理系统(Identity Management,IDM)分离,并实现了无登录的BPMN组件汉化。 首先,我们需要理解Flowable的核心概念。Flowable引擎...