前言在之前文章中有单独写过SpringSecurity表单登录流程源码分析,SpringSocial使用QQ授权登录流程详细分析
原创 2022-12-01 17:17:06
172阅读
前言SpringSecurity作为一个出自Spring家族很强大的安全框架时长被引用到SpringBoot项目中用作登录认证和授权模块使用,但是对于大部分使用者来说都只停留在实现使用用户名和密码的方式登录。而对于企业的项目需求大多要实现多种登录认证方式,例如一个的登录功能往往需要支持下面几种登录模式:用户名和密码模式手机号和短信验证码模式邮箱地址和邮件验证码模式微信、QQ、微博、知乎、钉钉、支付
转载 2024-03-27 15:42:45
134阅读
先看看这种核心流程图这张图是SpringSecurity认证涉及到的核心类让应用Debug启动点击表单登录进入到这个就是登录这的认证信息,接着上面构建UsernamePasswor
原创 2022-12-01 17:39:12
213阅读
../ 那么源码中后面的处理又是同3.2和3.3一样的了,进入FilterChainProxy中... ...
转载 2021-08-19 23:10:00
137阅读
2评论
../ 那么源码中后面的处理又是同3.2和3.3一样的了,进入FilterChainProxy中... ...
转载 2021-08-19 23:10:00
75阅读
2评论
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = ( ...
转载 2021-08-19 18:32:00
140阅读
2评论
WebSecurityConfiguration的重点是通过WebSecurity创建FilterChainProxy• 先分析内部的方法1、elegatingApplicationListener• 看名字就能看出来注册了一个委托类型的监听器public class WebSecurityConfiguration implements ImportAware, BeanCl
原创 2023-09-07 17:38:41
143阅读
1、基础用法• ChannelProcessingFilter是SpringSecurity的第一个过滤器,具体排序规则见FilterComparator,image.png• 主要作用:可限制服务端接受的安全协议,比如说仅支持Https或者Http1.1 开启配置类:• 首先我们注册到容器中的WebSecurityConfigurerAdapter是针对于WebSe
原创 2023-09-11 14:30:39
128阅读
前言• 当我们不在其他线程而就在容器创建的线程中使用SecurityContextHolder.getContext()获取SecurityContext的时候,正常都能获取到• SecurityContext默认是放在线程中的,所以说在某个地方一定将SecurityContext放到线程中,而这个类就是SecurityContextPersistenceFilter1、Sec
原创 2023-09-14 15:38:02
146阅读
前言• 我们通常会通过SecurityContextHolder.getContext()获取安全上下文• 然后通过SecurityContext.getAuthentication()获取认证对象• 最后通过Authentication.getPrincipal()获取用户对象,也就是下面的步骤• SecurityContextHolder.getCont
原创 2023-09-15 18:45:16
209阅读
前言• Csrf(跨站伪造请求):指的是用户在A网站认证完成后,A网站Cookie保存在了浏览器中,然后用户在B网站点击了钓鱼链接,使其让钓鱼请求带有了A网站的Cookie,从而让A网站认为这是一次正常的请求• 而SpringSecurity采用的是同步令牌模式(Synchronizer Token Pattern)来预防Csrf攻击• STP本意是每一次请求都会生成
原创 2023-09-20 18:03:16
146阅读
前言• SpringSecurity默认提供了登录的页面以及登录的接口,与之对应的也提供了登出页和登出请求• 登出请求对应的过滤器是LogoutFilter• 登出页对应的是DefaultLogoutPageGeneratingFilter、1. LogoutConfigurer• LogoutConfigurer是LogoutFilter对应的配置类,先看
原创 2023-09-22 17:19:28
112阅读
1、SpringWebMvcImportSelector• SpringSecurity支持在SpringMVC进行参数解析的时候填充参数,支持以下的对象• 通过@AuthenticationPrincipal,获取UserDetails• 通过@CurrentSecurityContext,获取SecurityContext• 通过参数类型为CsrfTok
原创 2023-09-06 17:12:16
106阅读
• AuthenticationConfiguration是认证管理器的配置类,当没有重写下面方法的时候会通过此配置类构建全局认证管理器public abstract class WebSecurityConfigurerAdapter implements ...... protected void configure(AuthenticationManagerBuil
原创 2023-09-08 15:16:24
133阅读
1、作用• 是为了接口返回异步对象,然后执行异步任务也能通过SecurityContextHolder获取SecurityContext• 比如说返回值是WebAsyncTask的时候2、WebAsyncManagerIntegrationFilter• 源码很短就是在WebAsyncManager中注册了SecurityContextCallableProcessi
原创 2023-09-12 11:09:06
120阅读
1点赞
前言• 跨域:两个域名的(协议、域名/ip、端口)有任意一个不同即视为跨域• 跨域资源共享(Cors):即浏览器允许访问其他跨域的资源• 而CorsFilter就是SpringSecurity用来处理Cors的过滤器1. CorsConfigurer• CorsConfigurer是CorsFilter对应的配置类,其中就只有一个重要方法• con
原创 2023-09-18 18:02:40
126阅读
framework.web.filter.DelegatingFilterProxy
转载 2023-07-07 22:07:28
45阅读
• SecurityAutoConfiguration是SpringSecurity最重要的一个自动配置类• 像以前版本的教程说要在启动类上配@EnableWebSecurity,现在也是由这个自动配置类负责引入• 分析一 已经介绍了DefaultAuthenticationEventPublisher,所以说重点就只有使用@Import导入的三个类 , S
原创 2023-09-05 14:37:35
91阅读
前言• 为了安全考虑,添加启用浏览器保护的某些头是很有用的,比如X-Frame-Options, X-XSS-Protection和X-Content-Type-Options• 而HeaderWriterFilter就支持往响应头写入各种响应头1、HeadersConfigurer• HeadersConfigurer是HeaderWriterFilter对应的配置
原创 2023-09-16 14:47:52
139阅读
通常来说安全框架需要做什么?无非就是三件事情:你是谁?你能做什么?你可不可以做?什么是认证?什么是授权?什么是鉴权?白话来说:认证就是鉴别你是不是你,授权就是告诉你能做什么,鉴权就是你可不可以做。 SpringSecurity中的认证和鉴权结合生活中的例子以及看源码的角度来认识认证和鉴权。小明和小红周末打算去苏州乐园玩,于是从某黄牛大姐那边买了两张乐园的高级门票,里面包含了疯狂过山车、旋
转载 2024-09-23 15:54:40
90阅读
  • 1
  • 2
  • 3
  • 4
  • 5