微服务轮子项目(06) - 服务认证架构设计(URL级权限控制)

简介: 微服务轮子项目(06) - 服务认证架构设计(URL级权限控制)

1. 功能说明

注意

  • 该功能会有性能开销,并且会增加很多系统使用成本(大量的配置),所以要按需开启
  • 一般有这种需求的系统都是后台管理类的2B系统,用户量和并发量并不大所以性能上的开销是可以接受的

总体包括以下几个部分

  • 资源/按钮权限配置
  • 角色关联权限
  • 前端页面按钮资源控制显示/隐藏
  • 后台接口url权限认证(如果对安全性要求不高可以去掉)

2. 配置说明

2.1 开启关闭控制

该功能默认关闭,开启需要配置以下步骤:

2.1.1 在网关添加url权限相关配置

打开网关认证配置

  • ylw.security.auth.urlPermission.enable设置为true

配置只认证登录,登录后所有角色都能访问的url(可选项)

  • ylw.security.auth.urlPermission.ignoreUrls

配置白名单/黑名单(可选项)

  • ylw.security.auth.urlPermission.includeClientIds
  • ylw.security.auth.urlPermission.exclusiveClientIds
2.1.2 页面菜单管理配置权限

菜单url:请求后台的url

菜单path:资源编码或者按钮id,用于前端页面控制元素显示/隐藏

2.1.3 页面角色管理关联权限

2.1.4 页面自己添加js动态根据权限控制隐藏的元素

admin.hasPerm方法为判断当前登录人所属角色是否具有该权限

2.2 缓存问题

目前的代码在根据多个角色编号查询资源/按钮权限的代码上增加了缓存配置(有效期5分钟),所以修改角色按钮权限后并不会马上生效

如果需要马上生效则有3个方案

  1. 去掉缓存,每次都直接查询数据库(并发量不大的情况下)
  2. 手动删除redis的缓存(应急情况下)
  3. 页面增加刷新按钮,刷新/删除缓存数据(推荐)
目录
相关文章
|
10月前
|
消息中间件 监控 前端开发
如何开发项目管理系统中的项目结项板块?(附架构图+流程图+代码参考)
在企业项目管理中,“项目结项”是关键环节,常因流程不清、文档不全、审批滞后等问题导致交付困难。本文介绍如何通过“项目结项”模块实现线上化管理,涵盖结项申请、审批流程、成果上传、权限控制等功能,帮助团队高效完成项目收尾,避免成果丢失与流程混乱。内容包括功能设计、业务流程、系统架构、数据库设计、核心代码实现、前端交互及优化建议,助力项目管理系统快速落地并稳定运行。
|
Java Maven Android开发
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
本文介绍了Spring Boot开发环境的搭建和项目启动流程。主要内容包括:jdk的配置(IDEA、STS/eclipse设置方法)、Spring Boot工程的构建方式(IDEA快速构建、官方构建工具start.spring.io使用)、maven配置(本地maven路径与阿里云镜像设置)以及编码配置(IDEA和eclipse中的编码设置)。通过这些步骤,帮助开发者顺利完成Spring Boot项目的初始化和运行准备。
1263 0
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
|
Java 测试技术 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
本课主要讲解Spring Boot项目中的属性配置方法。在实际开发中,测试与生产环境的配置往往不同,因此不应将配置信息硬编码在代码中,而应使用配置文件管理,如`application.yml`。例如,在微服务架构下,可通过配置文件设置调用其他服务的地址(如订单服务端口8002),并利用`@Value`注解在代码中读取这些配置值。这种方式使项目更灵活,便于后续修改和维护。
364 0
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1424 0
|
10月前
|
数据挖掘 项目管理 Python
如何开发项目管理系统中的项目启动板块?(附架构图+流程图+代码参考)
本文介绍了项目管理系统中“项目启动”板块的设计与实现,涵盖功能模块、业务流程、开发技巧及效果展示,并提供代码参考和常见问题解答,助力企业高效搭建项目管理平台。
|
9月前
|
人工智能 自然语言处理 JavaScript
Github又一AI黑科技项目,打造全栈架构,只需一个统一框架?
Motia 是一款现代化后端框架,融合 API 接口、后台任务、事件系统与 AI Agent,支持 JavaScript、TypeScript、Python 多语言协同开发。它提供可视化 Workbench、自动观测追踪、零配置部署等功能,帮助开发者高效构建事件驱动的工作流,显著降低部署与运维成本,提升 AI 项目落地效率。
800 0
|
10月前
|
缓存 Java 数据库
Java 项目分层架构实操指南及长尾关键词优化方案
本指南详解基于Spring Boot与Spring Cloud的Java微服务分层架构,以用户管理系统为例,涵盖技术选型、核心代码实现、服务治理及部署实践,助力掌握现代化Java企业级开发方案。
436 2
|
10月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
787 0
|
10月前
|
监控 前端开发 BI
如何开发项目管理系统中的项目收支板块?(附架构图+流程图+代码参考)
本文深入讲解项目管理系统中项目收支模块的设计与实现,涵盖预算、收入与支出管理,以及报表分析功能。内容包括模块功能概述、业务流程、开发技巧与实现方法,并提供数据库设计及前后端代码示例,助力企业打造高效的项目财务管控系统。
|
10月前
|
SQL 前端开发 项目管理
如何开发项目管理系统中的项目执行板块?(附架构图+流程图+代码参考)
随着企业项目规模扩大,传统管理方式已难以满足需求。本文介绍项目管理系统中“项目执行”板块的开发,涵盖任务管理、创建、验收及进度汇报等核心环节。通过功能设计、业务流程和开发技巧,结合代码示例,帮助企业高效推进项目执行,提升管理效率。

热门文章

最新文章