activiti7的强制绑定角色问题

角色强绑定问题及解决方案

在使用若依的基础上,本打算将activiti7集成进去,结果在测试调用activiti的api时返回前端"没有权限,请联系管理员授权"
本来还以为是若依的权限校验,结果通过debug发现日志中报错Expression=hasRole('ACTIVITI_USER')
网上查询才发现开发者丧心病狂的在各大Service中强行植入了Security,并且强绑定角色
无奈只能在登录时手动加上对应角色

    public UserDetails createLoginUser(SysUser user) {
        // 使用acticiti必须加上该角色
        final Set<String> menuPermission = permissionService.getMenuPermission(user);

        menuPermission.add("ROLE_ACTIVITI_USER");

        final List<SimpleGrantedAuthority> authorities = menuPermission.stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList());

        return new LoginUser(user.getUserId(), user.getDeptId(), user, menuPermission, authorities);
    }

这样问题才得以解决,真的太坑了

posted @ 2026-01-20 21:10  grillar  阅读(0)  评论(0)    收藏  举报