shiro整合springboot中,在realm中获取授权信息(perms)结果为null,求指点

这是我自定义的realm中的授权方法,其中的userService我是用手动注入的

 //授权
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
        //获取用户认证时的主身份信息
        String primaryPrincipal = (String) principals.getPrimaryPrincipal();
        System.out.println("primaryPrincipal-->"+primaryPrincipal);

        UserService userService = (UserService)ApplicationContextUtils.getBean("userService");
        System.out.println(userService);

        User user = userService.queryRoleByName(primaryPrincipal);
        List<Role> roles = user.getRoles();
        //如果角色信息不为空
        if (!CollectionUtils.isEmpty(roles)){
            SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
            roles.forEach(role -> {//遍历出所有的role
                simpleAuthorizationInfo.addRole(role.getName());//把角色信息放进Authorizer进行比对

                //获取权限信息
                List<Perms> perms = userService.findAllPermsByRoleId(role.getId());

                System.out.println(perms);//[]

                if (!CollectionUtils.isEmpty(perms)&& perms.get(0)!=null ){
                    perms.forEach(perm -> {
                        simpleAuthorizationInfo.addStringPermission(perm.getName());

                    });
                }
            });
            return simpleAuthorizationInfo;
        }
        return null;
    }

我在debug上面的授权方法的时候,发现运行到

List<Perms> perms = userService.findAllPermsByRoleId(role.getId());这一行方法时,perms是一个空数组[],下面是我debug的截图

但是我又在springboot的测试类中进行测试,发现可以findAllPermsByRoleId(role.getId())这个方法可以查询到权限:

 

你测试类执行这个看看有数据不: 

userService.findAllPermsByRoleId(0)