V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cjbi
V2EX  ›  Java

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

  •  2
     
  •   cjbi ·
    cjbi · 2023-01-16 15:26:06 +08:00 · 5146 次点击
    这是一个创建于 706 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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   ·   实用小工具   ·   2935 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:38 · PVG 21:38 · LAX 05:38 · JFK 08:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.