Flowable UI跳过权限验证

专题导航

一、Flowable介绍及部署
二、SpringBoot集成Flowable UI
三、Flowable UI跳过权限验证
四、Flowable UI整合前后分离

一、未登录访问需要验证的接口

直接访问一些需要登录验证的接口:

image-20200826181827962

二、权限校验分析及处理

因为之前搭建项目时,可以看到是权限校验是基于spring security的,故直接去需要security的配置文件:

image-20200826182325619

进入可以看到以下代码:

image-20200826182408842
其已经将/app/**进行了权限校验的配置

故,创建一个与其路径一样、名称一样的文件,将其短路、并且通过所有请求

image-20200826182904533
image-20200826182747640

再次测试

image-20200826191234469

同时后台报错:

java.lang.NullPointerException: null
	at org.flowable.ui.idm.rest.app.AccountResource.getAccount(AccountResource.java:69) ~[flowable-ui-idm-rest-6.4.2.jar:6.4.2]
	......

进入报错地点:

image-20200826192322542

继续进入:

image-20200826192217936

断点查看:

image-20200826192925110
可见是flowable自己封装的securityUtils通过spring security获取当前用户信息时,并未成功获取,返回值为null,因此调用user的信息时,抛出空指针异常。

对securityUtils进行重写,返回默认配置的用户

image-20200826193416250

	public static User getCurrentUserObject() {
        if (assumeUser != null) {
            return assumeUser;
        }
        RemoteUser user = new RemoteUser();
        user.setId("admin");
        user.setDisplayName("admin");
        user.setFirstName("admin");
        user.setLastName("admin");
        user.setEmail("admin@test.com");
        //赋予权限
        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);
        assumeUser(user);
        return user;
    }

    public static FlowableAppUser getCurrentFlowableAppUser() {
        if (flowableAppUser==null){
            RemoteUser user = new RemoteUser();
            user.setId("admin");
            user.setDisplayName("admin");
            user.setFirstName("admin");
            user.setLastName("admin");
            user.setEmail("admin@test.com");
            //赋予权限
            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);
            List<GrantedAuthority> list = new ArrayList<>();
            list.add(new SimpleGrantedAuthority(DefaultPrivileges.ACCESS_MODELER));
            list.add(new SimpleGrantedAuthority(DefaultPrivileges.ACCESS_IDM));
            list.add(new SimpleGrantedAuthority(DefaultPrivileges.ACCESS_ADMIN));
            list.add(new SimpleGrantedAuthority(DefaultPrivileges.ACCESS_TASK));
            list.add(new SimpleGrantedAuthority(DefaultPrivileges.ACCESS_REST_API));
            FlowableAppUser flowableUser = new FlowableAppUser(user,user.getId(),list);
            flowableAppUser = flowableUser;
        }
        return flowableAppUser;
    }

三、再次测试

代码处断点查看:

image-20200826195509866

操作结果:

image-20200826193850386

注意:admin、task等需要用户及组数据的操作,还是会报错(因为获取不到用户),可以考虑集成自己的用户表信息或者在idm中登录(数据表中存在的用户)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Flowable UI是一个可视化管理系统,它是Flowable项目的一部分。通过Flowable UI,用户可以方便地进行学习和深入了解Flowable项目。要使用Flowable UI,可以按照以下步骤进行操作:首先,将Flowable UI的源代码克隆到本地,可以通过命令"git clone https://gitee.com/xiongbomy/spider-flowable-ui.git"或者访问"https://gitee.com/xiongbomy/spider-flowable-ui"来获取源代码。然后运行FlowableUiApplication类,即可启动Flowable UI服务。启动成功后,可以通过访问"localhost:9001/flowable-ui/"来进入Flowable UI可视化管理系统。默认的账号密码是admin/test,可以使用这个账号密码登录进去。在Flowable 6.6之前,Flowable UI是由四个独立的服务和页面组成的,需要在浏览器中来回切换页面使用,不太方便。但是在Flowable 6.6之后,Flowable团队将Flowable UI提供的四个功能合并到了一起,使得使用更加便捷。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [小白学流程引擎-FLowable(三) —流程设计器Flowable UI](https://blog.csdn.net/weixin_44143114/article/details/128138869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值