NutzCN Logo
问答 5.X用户管理,防止别人越级查询代码实现有误
发布于 1802天前 作者 herexu 1518 次浏览 复制 上一个帖子 下一个帖子
标签: nutzwk

https://github.com/Wizzercn/NutzWk/blob/v5.x/wk-app/wk-nb-web-vue/src/main/java/cn/wizzer/app/web/modules/controllers/platform/sys/SysUserController.java

Cnd cnd = Cnd.NEW();
            if (shiroUtil.hasRole("sysadmin")) {
                if (Strings.isNotBlank(searchUnit)) {
                    cnd.and("unitid", "=", searchUnit);
                }
            } else {
                Sys_user user = (Sys_user) shiroUtil.getPrincipal();
                if (Strings.isNotBlank(searchUnit)) {
                    Sys_unit unit = sysUnitService.fetch(searchUnit);
                    if (unit == null || !searchUnit.startsWith(unit.getPath())) {
                        //防止有人越级访问
                        return Result.error("非法操作");
                    } else
                        cnd.and("unitid", "=", searchUnit);
                } else {
                    cnd.and("unitid", "=", user.getUnitid());
                }
}

searchUnit.startsWith(unit.getPath())这个start永远都会有问题

添加回复
请先登陆
回到顶部