Springboot 系列:SpringSecurity 授权
Spring Security 授权的本质是根据请求的 URL 找到匹配的权限规则列表,进行投票决定是否放行。本文将讲述这一过程,并分析底层的数据结构。
Spring Security 授权的本质是根据请求的 URL 找到匹配的权限规则列表,进行投票决定是否放行。本文将讲述这一过程,并分析底层的数据结构。
在之前的文章中讲述了《SpringSecurity 整体架构》,这篇文章承接上篇文章,主要讲述 SpringSecurity 的认证流程及相关的类。
网络通信引擎(Internet Communications Engine, Ice)是由 ZeroC 的分布式系统开发专家实现的一种高性能、面向对象的中间件平台。它提供了以下这些特性:跨平台、跨语言、分布式、安全、服务透明及负载均衡。在项目中,我们把它当作一个跨语言的 Rpc 框架来使用,实现 C++ 与 Java 两种语言的互调用,它隐藏了底层的通信细节,上层只需要关注业务即可。本文主要介绍 Ice 使用的方式,如直连模式、Registry 注册模式及 Registry Node 模式。
Spring Security 作为一个安全框架,它提供了两个基本的功能:1)认证;2)授权。认证表明一个是谁,授权则表示用户可以做什么。在底层实现上,这两个基本功能都是基于 Servlet Filter 来实现的,Filter 是Spring Security 框架的基座。 为了搞清楚其内部的实现原理,本文介绍了 Spring Security 中用到的 Filter 及它们之间的协作,后续再补充认证及授权流程。
服务发现是微服务架构体系中最关键的组件之一。Nacos 除了可以作为配置中心,也可以用于服务发现,服务端将接口注册到 Nacos 中,消费端动态获取服务列表,使用特定的负载算法选择其中一个服务来完成服务的调用。在这篇文章里,使用官方的代码实例来学习 Nacos 服务发现功能。
集中式的配置中心是微服务系统中一个比较重要组件, Nacos 在系统中可以承担两个角色:1)配置中心;2)服务注册中心。在这篇文章里,我们讲述如何在 SpringCloud 中集成 Nacos 作为配置中心来使用。
Nacos 可以用来作配置中心和服务注册中心,在微服务系统中有着比较的作用。它可以单机部署和集群部署,在生产环境中建议使用集群部署,在这里,主要是它来搭建实现环境,用单机即可。
授权服务器是一个系统中比较重要的模块,主要提供请求的访问认证和资源的授权。在这里,使用 SpringSecurity + Oauth2 + Jwt 实现一个授权服务器。
在 Centos 7.6 上部署一个单机的 kakfa 及 Flink, 用于学习的目的。