栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring security 基本原理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring security 基本原理

1、过滤器链

spring security本质上就是一个过滤器链(javaweb),由很多个过滤器组成,大概有十几个;

其中比较典型的过滤器:

  1. FilterSecurityInterceptor:是一个方法级(哪些方法能访问,哪些不能访问)过滤器,基本位于过滤器最底部:这个类实现了Filter接口,其中实现了很多方法,doFilter是真正的过滤方法。doFilter方法调用invoke方法,invoke中有before、after方法。
  2. ExceptionTranslationFilter:异常过滤器,用来处理在认证授权过程中抛出的异常,与FilterSecurityInterceptor代码结构类似。
  3. UsernamePasswordAuthenticationFilter:对login的post请求做拦截,校验在表单中的用户名、密码。逻辑是判断是否是post请求方式,如果是获取用户名和密码,验证。
2、过滤器加载过程 

其实spring security出现得比springboot还要早,但是自从有了spirngboot之后,springboot对spring security提供了自动化配置方案,可以使用更少配置来使用。虽然有springboor,还是要了解spring security过滤器加载过程:

  • 首先有一个叫DelegatingFilterProxy(springboot帮我们做了)的过滤器
  • 具体的源码可参考:Spring Security过滤器链加载执行流程源码解析_java_猪先飞
  • 大致流程图:

3、 两个重要的接口

在spring security应用中会用到两个重要的接口:

  • UserDetailService

       在实际项目中,账号和密码都是从数据库中查询的,所以需要通过自定义的逻辑控制机器认证逻辑。如果需要自定义逻辑时,只需要实现UserDetailService接口(查询用户名和密码的过程)

  • PasswordEncoder

       用于对user对象的密码进行加密

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号