在实际项目中,权限控制是必须要放到数据库管理的,我们来看下springrain是怎么设计权限的表结构吧
先上ER图
t_org是部门表,考虑到员工兼职,所以有t_user_org 中间表.
t_menu是菜单表,字段 type 是标示是菜单资源还是普通资源 菜单资源的意义就是导航菜单,会显示到左侧导航,普通资源就是菜单内的按钮或者提交路径,这个时候 pid的意义就比较重要了,pid就是上级菜单的id,对于页面普通资源来说,就是相应的导航菜单的url,这样在管理界面能够树形显示出来.
用户正常登陆后,根据用户的角色查询角色拥有的菜单权限,通过树形菜单显示导航,示例效果图如下:
每个菜单下一般拥有增删改查导入导出等普通资源,这些也是有权限控制的,后台分配权限示例如下图:
图中 博客管理 是一个导航菜单,其中包含删除博客等动作的普通资源url. 通过 t_menu表中 type 字段进行标示菜单资源或者普通资源,pid字段标示这些普通资源属于 博客管理 这个菜单下.
删除,批量删除等其实就是前台操作的按钮,通过shiro的标签,可以控制按钮是否显示,shiro官方提供了jstl的标签库,springrain是使用了freemarker标签.
以博客管理为例代码截图如下:
就此 就能灵活分配和管理每个操作的权限.
对于通用的url拦截权限来说,这几张表足够用了.
相关推荐
springrain-springboot设计资源
SpringRain-master.zip文件正是这样一个以云原生微服务为核心的应用实例,它结合了Kubernetes(K8S)的容器编排能力,以及apisix或istio的服务网格技术,旨在为开发者提供一套高效、稳定的Web开发框架。 首先,让...
5. 代码生成器:SpringRain自带的代码生成器是一个实用工具,它根据数据库表结构自动生成后端的业务逻辑代码、数据库访问对象(DAO)、服务层代码以及前端的页面代码。这样,开发者可以减少重复的编码工作,专注于...
2. **模块化设计** - 模块化结构便于服务扩展和维护,支持插件化开发。 3. **统一配置** - 提供统一的配置管理,方便在集群环境中管理和更新配置。 4. **权限控制** - 内置权限管理系统,支持角色、权限分配,增强...
"springrain-master"文件夹中的源码提供了SpringRain的核心实现。通过分析源码,我们可以了解其如何处理服务注册、服务发现、熔断策略、配置中心等功能,这对于理解微服务架构和云原生实践非常有帮助。 7. **毕业...
servlet servlet servlet servlet servlet
基于K8S + apisix/istio 实现云原生微服务.springrain自带代码生成器,能够生成对表的增删改查的逻辑代码.springrain是标准Maven项目,只依赖springboot,没有hibernate,struts,ibatis,数据库调优可以使用druid输出慢...
- **类命名**:类名应使用名词或名词性词组,每个单词的首字母大写,如`Person`,`SpringRain`。 - **方法命名**:方法名应使用动词或动词性词组,首字母小写,后续单词首字母大写,如`run()`,`display...
例如,`class Person`,`class SpringRain`。 - **方法**:使用动词或动词性词组,首字母小写,第二个单词及以后的首字母大写。例如,`run()`,`displayInformation()`。 - **接口**:与类的命名规则相同,例如`...
在SpringRain项目中,Shiro被用于实现权限控制功能。 在Shiro框架中,有三个核心组件构成了其基本架构,它们分别是Subject、SecurityManager和Realm。 Subject代表了“当前操作用户”,它可以是人,也可以是第三方...
反激式开关电源EXCEL,方便计算大致参数等,并含有相应磁芯材料技术参数。