Spring Security 是一个非常强大的身份验证和授权控制框架。为了满足企业项目的不同需求,它提供了很多定制化开发的解决方案,通过简单的调整配置,就能为我们的应用提供一套可靠的安全保障。本节课程主要任务就是搞清楚 Spring Security 是干什么的,以及它的基本用法。

系统安全和系统保护设计

在实际开发过程中,为了保证我们的系统能够安全稳定的运行下去,一般都要从下面两点来考虑:

系统安全性:防止非法入侵、非法请求、非法拦截等。我们需要阻止和屏蔽不信任的请求源访问,保证数据的安全可靠,不被人窃取。
系统健壮性:也就是系统可用性,最常见的解决方案就是做服务 “冗余”。当然量级够大的话,要做的事情会很多很多,比如限流、熔断、降级等等。

这里只简单的谈一谈系统的安全性,在项目的开发中需要从全方位、多角度做工作,以确保整个业务链路、整个体系范围都能保证安全。下面就大致介绍下在实际开发过程中,开发者经常用到的一些方法:

  • 数据校验,包括前端 js 校验和后端校验,其实前端校验主要是为了体验,也就是尽可能降低出错率,提高一次性提交的成功率。也可以说前端校验规则是后端校验的子集。
  • 防止命令注入,比如最常见的 SQL 注入,它不是利用操作系统的 BUG 来实现攻击,而是针对程序员编程时的疏忽,通过 SQL 语句,实现无帐号登录,甚至篡改数据库。
  • 认证安全,对于使用应用的实体,无论是人还是系统程序,都应当做到对每个请求都能找到对应的责任实体。因此,在处理请求前,要先对认证信息进行检测。
  • 登录鉴权,即要控制这个用户登录后能在系统中做什么,比如一般要把用户分为外部用户、员工等。
  • 数据加密,对于敏感数据,不得明文传输和明文存储。如数据存储中,密码等信息我们可以加密后再存储;数据传输中,对密文使用 DES3/RSA 加密。
  • 请求签名,在外部请求时也是常见的处理方式,只有通过接口签名验证的请求,才信任为合法的请求。
  • 在系统的安全方面,我们的 Spring Security 框架,解决的最主要的问题就是 认证安全登录鉴权

Spring Security 核心功能介绍

Spring Security 其核心就是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份,一个在 Spring Security 中一种过滤器处理一种认证方式。比如,对于 username password 认证过滤器来说:

  • 会检查是否是一个登录请求;
  • 是否包含 username 和 password (也就是该过滤器需要的一些认证信息);
  • 如果不满足则放行给下一个。

然后下一个认证过滤器,再次按照自身职责判定是否是自身需要的信息。中间可能还有更多的认证过滤器,只要有一个认证过滤器通过了,就是用户登录成功。

在整个过滤器中的最后一环是 FilterSecurityInterceptor,这里会判定该请求是否能进行访问 REST 服务,如果被拒绝了就会抛出不同的异常(根据具体的原因)。Exception Translation Filter 会捕获抛出的错误,然后根据不同的认证方式进行信息的返回提示。
参考资料

如果觉得文章有用的话就给我一个赞吧~

Java认证授权框架Spring Security介绍相关推荐

  1. java认证授权(Spring Security)

    目录 1.Spring Security介绍 2.认证授权入门 2.2.1 创建认证服务工程 1.部署认证服务工程 2.配置Spring Security所需要的依赖 3.初始工程自带了一个Contr ...

  2. 后端架构token授权认证机制:spring security JSON Web Token(JWT)简例

    后端架构token授权认证机制:spring security JSON Web Token(JWT)简例 在基于token的客户端-服务器端认证授权以前,前端到服务器端的认证-授权通常是基于sess ...

  3. 【Spring】Spring Security介绍及其入门案例

    文章目录 前言 1. SpringSecurity 框架简介 1.1 概要 1.2 历史 1.3 同款产品对比 1.3.1 Spring Security 1.3.2 Shiro 1.4 模块划分 2 ...

  4. spring security_一文肝爆Spring安全框架Spring Security

    长按识别下方二维码,即可"关注"公众号 每天早晨,干货准时奉上! 作者:HallowCoder 序 Spring Security的架构及核心组件:(1)认证:(2)权限拦截:(3 ...

  5. Spring Security介绍

    文章主要分三部分 1.Spring Security的架构及核心组件:(1)认证:(2)权限拦截:(3)数据库管理:(4)权限缓存:(5)自定义决策: 2.环境搭建与使用,使用当前热门的Spring ...

  6. 安全框架Spring Security(认证和授权)

    Spring Security 今天从以下几个内容介绍: Spring Security简介 Spring Security的Maven依赖 Spring Security使用 Spring Secu ...

  7. 鉴权/认证框架Spring Security和Apache Shiro比较

    参考: https://www.cnblogs.com/minxiang-luo/p/12492905.html https://www.javadevjournal.com/spring-boot/ ...

  8. 【若依】开源框架学习笔记 07 - 登录认证流程(Spring Security 源码)

    文章目录 一.概述 二.登录过程代码实现 三.用户验证流程(Spring Security 源码) 1.处理用户认证逻辑过滤器 `UsernamePasswordAuthenticationFilte ...

  9. Spring Security介绍(4)

    7.4  保护Web应用程序 Spring Security对Web安全性的支持大量地依赖于Servlet过滤器.这些过滤器拦截进入请求,并且在你的应用程序处理该请求之前进行某些安全处理. Sprin ...

最新文章

  1. c语言存储结构体,c语言结构体的保存和导入
  2. opnet平台中切换模块的理解——切换的建模
  3. 服务器安全之iptables iptables
  4. 【开发工具】之makefile基本规则
  5. node 的多进程架构
  6. 命令行读写i2c寄存器操作
  7. 【渝粤题库】陕西师范大学300006 史学概论
  8. iapp如何导入本地源码,iapp导入源码使用教程
  9. 斑马打印机-RFID打印机 ZT411R最全攻略,从0上手 通过【JAVA生成ZPL指令+ts24.lib+ip:端口】的方式调用打印,无须安装驱动
  10. 任天堂xci文件提取romfs
  11. 2018年下半年系统集成项目管理工程师下午真题及答案解析
  12. 深度置信网络(Deep belief network)matlab初解
  13. 如何做蛋白质互作网络图
  14. UiPath认证流程
  15. Python爬虫进阶之某支付网站密码分析
  16. 鸿蒙系统电脑适配双面打印机,win10系统实现打印机双面打印的操作方法
  17. 墨客网java_墨客网-知识拆解+经典定时任务案例 精讲Java定时任务框架Elastic-Job和Quartz...
  18. 二维码的制作Java篇
  19. proj Java_proj 一个炫酷的飞机大战java游戏,很好玩的,很酷炫 用了 的图形界面 Games 256万源代码下载- www.pudn.com...
  20. Cortex-M单片机下载数据到外部flash

热门文章

  1. Python的运算符与表达式
  2. 【数据库范式】 分析题第一范式
  3. [51单片机] EEPROM 24c02 [I2C代码封装-保存实现流水灯]
  4. 一个非常简单的滚动代码
  5. skywalking告警相关配置
  6. 在myeclipse中建立maven项目
  7. 莱芜长运公共交通有限公司简介
  8. network packet
  9. CentOS7防火墙firewalld和iptable的设置和使用
  10. 在 vue 组件中查看 vuex 定义