安全认证系列之-Spring Filters


前言

任何Spring Web应用本质上只是一个 servlet。
Security Filter在HTTP请求到达你的Controller之前过滤每一个传入的HTTP请求。


一、简单的流程图

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

流程描述:

  1. 用户通过浏览器访问服务器资源。
  2. 经过拦截器,拦截器验证用户是否是合法用户。
  3. 未认证401、未授权403。
  4. 已认证已授权可以访问对应的资源。

二、示例代码

在这里插入图片描述
代码讲解:

  1. 首先,过滤器需要从请求中提取一个用户名/密码。它可以通过一个基本的HTTP头(请求头Header),或者表单字段(即Body参数),或者Cookie,或者路径字段等等。
  2. 然后,过滤器需要对用户名/密码账户进行验证,一般都是从数据库获取用户密码(已加密),与传递过来的密码(按照相关的加密算法加密),进行比对。
  3. 验证用户是否合法,不合法返回401,即认证失败。
  4. 验证用户访问资源是否授权,未授权403,即授权失败。
  5. 验证成功后就可以正常的访问相关授权的资源,重定向到“@Controller”或者“RestController”。
  6. 返回数据给用户。
  7. 用户查看数据。

流程基本如下图:
在这里插入图片描述

三、常见的内建过滤器

在这里插入图片描述


总结

项目启动的时候会默认初始化很多的过滤链,这些拦截类是否起作用还跟你访问的资源有关系,例如:UserNamePasswordAuthenticationFilter默认是没有起作用的,但是如果集成了 SpringSecurity从表单进行登录,则会走UserNamePasswordAuthenticationFilter拦截器,感觉拦截器这个东西就是用来处理认证和授权相关的业务。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页