1. 概述
Spring Security 是一个框架,提供针对常见攻击的身份验证、授权和保护。 它为保护命令式和响应式应用程序提供了一流的支持,是保护基于 Spring 的应用程序的事实标准。
2. 了解
shiro:
在之前SSM框架盛行的时代,项目的安全框架主流是shiro
,当然,shiro
的优点不可否认,轻量、简单、易于集成、可在JavaSE中使用
,不过在微服务主流的时代,shiro
的就显得力不从心了
SpringSecurity:
SpringSecurity作为Spring家族的一员,对于用来与SpringBoot以及SpringCloud等进行整合时,有着无可比拟的优势,同时对OAuth2有着良好的支持,让SpringSecurity在不知不觉中已经成为微服务项目的优选方案
3. 权限管理
3.1 认证
身份认证
,就是判断一个用户是否为合法用户的处理过程,最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确
3.2 授权
授权
,即访问控制,控制谁能访问哪些资源,主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的
4. 整体架构
在SpringSecurity的架构设计中,认证<Authentication>
和授权<Authorization>
是分开的,无论使用什么样的认证方式,都不会影响授权,这是两个独立的存在