「Spring Security」前后端分离后台菜单权限控制

1. RBAC权限控制模型

RBAC(Role-based access control)是一种以角色为基础的访问控制(Role-based access control,RBAC),它是一种较新且广为使用的权限控制机制,这种机制不是直接给用户赋予权限,而是将权限赋予角色。

RBAC 权限模型将用户按角色进行归类,通过用户的角色来确定用户对某项资源是否具备操作权限。RBAC 简化了用户与权限的管理,它将用户与角色关联、角色与权限关联、权限与资源关联,这种模式使得用户的授权管理变得非常简单和易于维护。

「Spring Security」安全架构与认证鉴权原理

1. Spring Security Servlet 安全架构

Spring Security 设计的 Servlet 安全从架构上分为三个层次,分别是「认证」、「鉴权」、「入侵防护」。通过过滤器机制将安全逻辑应用到 Servlet 项目。

请求的接收和处理是通过一个一个的过滤器顺序执行实现的,过滤器是 Servlet 项目处理请求的基础。

Spring 将自己体系内的过滤器交由「过滤器代理FilterChainProxy」管理,FilterChainProxy 同样也是一个过滤器,被封装在 Spring 的「过滤器委托代理DelegatingFilterProxy」中。
Spring SecurityFilterChainProxy 中加入了「安全过滤器链SecurityFilterChain」实现安全保护功能。

「Spring Security」Spring Security 基础入门示例

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制的安全框架。它是 Spring 应用程序在安全框架方面的公认标准。

其核心特性包括:认证和授权、常规攻击防范、与 Servlet 接口集成、与 Spring MVC 集成等。

常规攻击防范在 Spring Security 安全框架中是默认开启的,常见的威胁抵御方式有:防止伪造跨站请求(CSRF),安全响应头(HTTP Response headers),HTTP通讯安全等

「SpringCloud」OpenFeign整合Sentinel实现熔断降级

1. Sentinel简介

Sentinel 是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。

Sentinel 分为两个部分:

  • 核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。
  • 控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

「SpringCloud」OpenFeign服务间调用

1. Spring Cloud OpenFeign简介

OpenFeignSpringCloud提供的一个声明式的伪Http客户端,它使得调用远程服务就像调用本地服务一样简单,只需要创建一个接口并添加一个注解即可。
OpenFeignSpringCloudFeign的基础上支持了Spring MVC的注解,并通过动态代理的方式产生实现类来做负载均衡并进行调用其他服务。

「SpringCloud」Config配置中心

1. Spring Cloud Config简介

Spring Cloud Config可以为微服务架构中的应用提供集中化的外部配置支持,它分为服务端和客户端两个部分。
服务端被称为分布式配置中心,它是个独立的应用,可以从配置仓库获取配置信息并提供给客户端使用。
客户端可以通过配置中心来获取配置信息,在启动时加载配置。
Spring Cloud Config默认采用Git来存储配置信息,所以天然就支持配置信息的版本管理,并且可以使用Git客户端来方便地管理和访问配置信息。

「SpringCloud」Gateway网关

1. Gateway简介

Spring Cloud Gateway 是基于 Spring5.0、SpringBoot2.0 和 Project Reactor 开发的网关,旨在提供一种简单而有效的方式来对API进行路由,基于过滤器链的方式提供:安全,监控/埋点,和限流。

Spring Cloud Gateway 基于 Spring Boot2.x、Spring WebFlux 和 Project Reactor构建,属于异步非阻塞模型。