Java认证授权框架Spring Security介绍
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介绍相关推荐
- java认证授权(Spring Security)
目录 1.Spring Security介绍 2.认证授权入门 2.2.1 创建认证服务工程 1.部署认证服务工程 2.配置Spring Security所需要的依赖 3.初始工程自带了一个Contr ...
- 后端架构token授权认证机制:spring security JSON Web Token(JWT)简例
后端架构token授权认证机制:spring security JSON Web Token(JWT)简例 在基于token的客户端-服务器端认证授权以前,前端到服务器端的认证-授权通常是基于sess ...
- 【Spring】Spring Security介绍及其入门案例
文章目录 前言 1. SpringSecurity 框架简介 1.1 概要 1.2 历史 1.3 同款产品对比 1.3.1 Spring Security 1.3.2 Shiro 1.4 模块划分 2 ...
- spring security_一文肝爆Spring安全框架Spring Security
长按识别下方二维码,即可"关注"公众号 每天早晨,干货准时奉上! 作者:HallowCoder 序 Spring Security的架构及核心组件:(1)认证:(2)权限拦截:(3 ...
- Spring Security介绍
文章主要分三部分 1.Spring Security的架构及核心组件:(1)认证:(2)权限拦截:(3)数据库管理:(4)权限缓存:(5)自定义决策: 2.环境搭建与使用,使用当前热门的Spring ...
- 安全框架Spring Security(认证和授权)
Spring Security 今天从以下几个内容介绍: Spring Security简介 Spring Security的Maven依赖 Spring Security使用 Spring Secu ...
- 鉴权/认证框架Spring Security和Apache Shiro比较
参考: https://www.cnblogs.com/minxiang-luo/p/12492905.html https://www.javadevjournal.com/spring-boot/ ...
- 【若依】开源框架学习笔记 07 - 登录认证流程(Spring Security 源码)
文章目录 一.概述 二.登录过程代码实现 三.用户验证流程(Spring Security 源码) 1.处理用户认证逻辑过滤器 `UsernamePasswordAuthenticationFilte ...
- Spring Security介绍(4)
7.4 保护Web应用程序 Spring Security对Web安全性的支持大量地依赖于Servlet过滤器.这些过滤器拦截进入请求,并且在你的应用程序处理该请求之前进行某些安全处理. Sprin ...
最新文章
- c语言存储结构体,c语言结构体的保存和导入
- opnet平台中切换模块的理解——切换的建模
- 服务器安全之iptables iptables
- 【开发工具】之makefile基本规则
- node 的多进程架构
- 命令行读写i2c寄存器操作
- 【渝粤题库】陕西师范大学300006 史学概论
- iapp如何导入本地源码,iapp导入源码使用教程
- 斑马打印机-RFID打印机 ZT411R最全攻略,从0上手 通过【JAVA生成ZPL指令+ts24.lib+ip:端口】的方式调用打印,无须安装驱动
- 任天堂xci文件提取romfs
- 2018年下半年系统集成项目管理工程师下午真题及答案解析
- 深度置信网络(Deep belief network)matlab初解
- 如何做蛋白质互作网络图
- UiPath认证流程
- Python爬虫进阶之某支付网站密码分析
- 鸿蒙系统电脑适配双面打印机,win10系统实现打印机双面打印的操作方法
- 墨客网java_墨客网-知识拆解+经典定时任务案例 精讲Java定时任务框架Elastic-Job和Quartz...
- 二维码的制作Java篇
- proj Java_proj 一个炫酷的飞机大战java游戏,很好玩的,很酷炫 用了 的图形界面 Games 256万源代码下载- www.pudn.com...
- Cortex-M单片机下载数据到外部flash