分享下最近造的轮子,基于 Java17、SpringBoot3.0+Vue3 的前后端后台权限管理框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cjbi
V2EX    Java

分享下最近造的轮子,基于 Java17、SpringBoot3.0+Vue3 的前后端后台权限管理框架

  •  2
     
  •   cjbi
    cjbi 2023-01-16 15:26:06 +08:00 5840 次点击

    Admin3 后台管理系统

    项目说明

    admin3 后台管理系统,一个灵活高效不臃肿的后台管理框架,项目后端基于 Java17 、SpringBoot3.0 ,前端基于 TypeScript 、Vite3 、Vue3 、Element Plus ,只提供登录会话、用户管理、角色管理、权限资源管理、事件日志等基础功能的最佳实践方案,不做过多的封装,适合二次定制开发、接私活、源码学习等场景。

    主要特性:

    • 未使用任何安全框架,优雅地实现了会话管理+权限控制功能,支持请求 URL 权限拦截,菜单、按钮级别权限控制

    • 会话通过数据库作为二级缓存,即使重启也不会丢失登录状态

    • 支持 AOT 编译 Native 镜像,相较于传统 JVM 形式节省了至少 50%的内存

    • 前端资源支持独立部署+webjars 嵌入到后端应用两种形式

    • 持久层使用 SpringData JPA 进行开发,能够支持多种数据库适配

    开源地址

    https://github.com/cjbi/admin3

    https://gitee.com/cjbi/admin3

    33 条回复    2023-02-14 16:43:33 +08:00
    chunworkhard
        1
    chunworkhard  
       2023-01-16 15:27:32 +08:00
    挺不错的
    cjbi
        2
    cjbi  
    OP
       2023-01-16 15:29:54 +08:00
    @chunworkhard 谢谢你
    ciscool001118
        3
    ciscool001118  
       2023-01-16 15:49:09 +08:00
    这个支持数据权限吗?
    Poluk
        4
    Poluk  
       2023-01-16 15:53:52 +08:00
    感谢感谢,最近刚学完 boot 相关的..先 star ,等等看看,刚学完 boot 的初学者还不知道怎么从源码入手学习呢..(苦恼)
    yazinnnn
        5
    yazinnnn  
       2023-01-16 16:14:08 +08:00   1
    4 天 800star? 刷的吗?
    cjbi
        6
    cjbi  
    OP
       2023-01-16 16:20:43 +08:00
    @yazinnnn 切换分支看看,只是 main 分支提交比较少,实际都维护 4 年了。再说也没必要刷,没有利益相关,纯粹个人爱好
    cjbi
        7
    cjbi  
    OP
       2023-01-16 16:23:00 +08:00
    @ciscool001118 不支持数据权限
    xuanbg
        8
    xuanbg  
       2023-01-16 16:23:26 +08:00
    @ciscool001118 你想多了,任何框架都不可能支持数据权限。因为数据权限是无法从业务中抽象出来且与业务无关。所以,任何号称支持数据权限的框架,里面都不知道有多少坑在等着你,还是直接丢弃比较好。
    yazinnnn
        9
    yazinnnn  
       2023-01-16 16:25:35 +08:00
    @cjbi
    不好意思, 冒犯了
    cjbi
        10
    cjbi  
    OP
       2023-01-16 16:30:56 +08:00
    每次 springboot 和前端有什么大的技术变动,我都是重新拉分支造的轮子,本身就简单,三四天的时间就能完成
    cjbi
        11
    cjbi  
    OP
       2023-01-16 16:31:20 +08:00
    权限参考了 shiro 的权限字符串的设计,套用一下 rbac 模型+拦截器拦截过滤 URL 。其实大部分权限系统都没必要引入 Spring Security/Shiro ,实际业务根本用不到那些强大的功能
    gowk
        12
    gowk  
       2023-01-16 16:33:58 +08:00
    如果角色能支持数据过滤( data scope) 就好了
    也就是可以设置某个角色
    1 只能查看本人数据
    2 查看本部门数据
    3 查看本部门及下属部门数据
    4 自定义部门数据
    gowk
        13
    gowk  
       2023-01-16 16:36:02 +08:00
    @cjbi #11
    赞同,徒增学习成本而已
    xuanbg
        14
    xuanbg  
       2023-01-16 16:42:21 +08:00
    @gowk 数据权限难在授权。你这种无授权(借组织机构)确实是可以很简单在业务层实现的,但并不是所有查询都需要进行数据过滤,所以就无法在框架层面来实现这个功能。
    whyrookie
        15
    whyrookie  
       2023-01-16 16:57:25 +08:00
    期待一个 React+Springboot 的开源项目
    ngduncent
        16
    ngduncent  
       2023-01-16 17:27:32 +08:00
    @gowk 我实现了注解式数据权限
    https://github.com/valarchie/AgileBoot-Back-End
    可以参考一下。
    leegradyllljjjj
        17
    leegradyllljjjj  
       2023-01-16 17:41:19 +08:00
    可以拿去期末答辩了,估计能给 90 分
    zxdlovejava
        18
    zxdlovejava  
       2023-01-16 19:18:25 +08:00 via iPhone
    Mark 前端在学习 spring boot, 值得学习
    zxdlovejava
        19
    zxdlovejava  
       2023-01-16 19:19:38 +08:00 via iPhone
    @whyrookie 可以自己翻译一下,用 and pro 那一套应该很快
    cjbi
        20
    cjbi  
    OP
       2023-01-16 22:06:34 +08:00 via Android
    一开始我也犹豫了半天,前端到底是用 vue3 还是 react ,想到国内还是 vue 为主,就用了 vue ,没准哪一天闲的没事就写个 react 版本也有可能
    cjbi
        21
    cjbi  
    OP
       2023-01-16 22:08:03 +08:00 via Android
    @zxdlovejava antd pro 感觉很难用,又重,用过一次,再也不会用了
    cjbi
        22
    cjbi  
    OP
       2023-01-16 22:10:02 +08:00 via Android
    @zxdlovejava 我不整花里胡哨的东西,代码都是干活,拿来学习准没错
    gowk
        23
    gowk  
       2023-01-16 23:26:12 +08:00
    @xuanbg
    默认查询不加数据过滤,除非添加显式注解,好像 ruoyi 就是这么做的
    guiyun
        24
    guiyun  
       2023-01-17 09:07:44 +08:00
    各位大佬,我这边有个想法,是不是可以将前端的表结构这类的,前端使用 avue 实现,后端具体的结构这类的保存到数据库中,这样实现怎么样
    feelinglucky
        25
    feelinglucky  
       2023-01-17 15:12:01 +08:00
    java 这边的测试用例完全没有
    cjbi
        26
    cjbi  
    OP
       2023-01-17 15:49:42 +08:00 via Android
    @feelinglucky 会补上的
    Pony69
        27
    Pony69  
       2023-01-17 17:20:02 +08:00
    感觉不错
    cjbi
        28
    cjbi  
    OP
       2023-01-17 20:55:38 +08:00
    我已经把所有的接口都做了端到端的测试用例覆盖,有代码变动都会全量跑一遍测试用例,写测试用例早就再计划中了,今天刚好有时间空闲
    Focus9
        29
    Focus9  
       2023-02-02 09:31:17 +08:00
    文档里权限管理点开是 404
    Hccake
        30
    Hccake  
       2023-02-11 17:55:06 +08:00
    Hccake
        31
    Hccake  
       2023-02-11 17:56:47 +08:00
    @ciscool001118 试试这个插件 http://www.ballcat.cn/guide/feature/data-scope.html ,基于 mybatis 拦截器实现的数据权限 sql 注入。用户只要根据自己的业务,定制对应的规则即可
    cjbi
        32
    cjbi  
    OP
       2023-02-13 21:14:21 +08:00
    @Focus9 已经修改好了
    KedaArray
        33
    KedaArray  
       2023-02-14 16:43:33 +08:00
    点了点了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1090 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:29 PVG 01:29 LAX 10:29 JFK 13:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86