flowable 绕过idm自带的身份验证

简介: 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;
  }
}

 

目录
相关文章
|
17天前
|
网络安全 数据安全/隐私保护 安全
Kali 测试:使用Burp Suite 对网络认证服务的攻击(二)
Kali 渗透测试:使用Burp Suite 对网络认证服务的攻击(二)
72 0
|
17天前
|
Web App开发 测试技术 网络安全
Kali 测试:使用Burp Suite 对网络认证服务的攻击(一)
Kali 渗透测试:使用Burp Suite 对网络认证服务的攻击(一)
46 0
|
27天前
|
安全 数据安全/隐私保护
Burp Suite暴力破解表单账密步骤
Burp Suite暴力破解表单账密步骤
28 0
|
2月前
|
Android开发
【Azure 环境】移动应用 SSO 登录AAD, MSAL的配置为Webview模式时登录页面无法加载
【Azure 环境】移动应用 SSO 登录AAD, MSAL的配置为Webview模式时登录页面无法加载
|
数据采集 安全 Java
Web 漏洞扫描之 BurpSuite(一)| 学习笔记
快速学习 Web 漏洞扫描之 BurpSuite(一)
1564 0
Web 漏洞扫描之 BurpSuite(一)| 学习笔记
|
5月前
|
安全 Java 网络架构
CVE-2024-27198可RCE身份验证绕过JetBrains TeamCity
CVE-2024-27198可RCE身份验证绕过JetBrains TeamCity
107 0
|
Shell
绕过360/某绒添加管理用户CS插件
绕过360/某绒添加管理用户CS插件
104 0
|
开发框架 PHP
Yii2.0是否支持集成Jasny SSO?
Yii2.0是否支持集成Jasny SSO?
129 0
|
存储 Web App开发
[解决办法]已经安装了数字证书,但是谷歌浏览器登录https协议的web系统时仍然提示证书不受信任
已经安装了数字证书,但是谷歌浏览器登录https协议的web系统时仍然提示证书不受信任。如下图: 解决办法: 1.单击Chrome浏览器右侧设置菜单,选择“设置”。 2.拖至页面下方,单击“显示高级设置”。
8084 0
|
XML 数据格式
SSO场景系列:实现 Google G Suite 到阿里云的单点登录
本文介绍从 Google G Suite (作为IdP)到阿里云(作为SP)进行SSO联合登录的一种配置方法,用于帮助客户理解企业如何使用外部 IdP 与阿里云服务进行身份联合的端到端配置流程。
3080 0