1. 前言 我在Spring Security 实战干货:内置 Filter 全解析对Spring Security的内置过滤器进行了罗列,但是Spring Security真正的过滤器体系才是我们了解它是如何进行"认证"."授权"."防止利用漏洞"的关键. 2. Servlet Filter体系 这里我们以Servlet Web为讨论目标,Reactive Web暂不讨论.我们先来看下最基础的Servlet体系,在Servlet体系中客户端发起…
1. 前言 欢迎阅读Spring Security 实战干货系列文章,在集成Spring Security安全框架的时候我们最先处理的可能就是根据我们项目的实际需要来定制注册登录了,尤其是Http登录认证.根据以前的相关文章介绍,Http登录认证由过滤器UsernamePasswordAuthenticationFilter 进行处理.我们只有把这个过滤器搞清楚才能做一些定制化.今天我们就简单分析它的源码和工作流程. 2. UsernamePasswordAuthenticationFilter…
在Spring Security 实战干货:客户端OAuth2授权请求的入口中我们找到了拦截OAuth2授权请求入口/oauth2/authorization的过滤器OAuth2AuthorizationRequestRedirectFilter,并找到了真正发起OAuth2授权请求的方法sendRedirectForAuthorization.但是这个方法并没有细说,所以今天接着上一篇把这个坑给补上. 2. sendRedirectForAuthorization 这个sendRedirect…
1. 前言 今天有个同学告诉我,在Security Learning项目的day11分支中出现了一个问题,验证码登录和其它登录不兼容了,出现了No Provider异常.还有这事?我赶紧跑了一遍还真是,看来我大意了,不过最终找到了原因,问题就出在AuthenticationManager的初始化上.自定义了一个UseDetailService和AuthenticationProvider之后AuthenticationManager的默认初始化出问题了. 虽然在Spring Security 实…
(转载)原文链接:https://my.oschina.net/10000000000/blog/3127268 1. 前言 欢迎阅读Spring Security 实战干货系列.之前我讲解了如何编写一个自己的 Jwt 生成器以及如何在用户认证通过后返回 Json Web Token .今天我们来看看如何在请求中使用 Jwt 访问鉴权.DEMO 获取方法在文末. 2. 常用的 Http 认证方式 我们要在 Http 请求中使用 Jwt 我们就必须了解 常见的 Http 认证方式. 2.1 HTT…
1.前言 欢迎阅读 Spring Security 实战干货 系列文章 .OAuth2.0 是近几年比较流行的授权机制,对于普通用户来说可能每天你都在用它,我们经常使用的第三方登录大都基于 OAuth2.0.随着应用的互联互通,个性化服务之间的相互调用,开放性的认证授权成为 客观的需要. 2. OAuth2.0 的简单认识 OAuth定义了如下角色,并明确区分了它们各自的关注点,以确保快速构建一致性的授权服务: Resource Owner 资源拥有者,通常指的是终端用户,其作用是同意或者拒绝.…
1. 前言 欢迎阅读 Spring Security 实战干货 系列文章 .最近有开发小伙伴提了一个有趣的问题.他正在做一个项目,涉及两种风格,一种是给小程序出接口,安全上使用无状态的JWT Token:另一种是管理后台使用的是Freemarker,也就是前后端不分离的Session机制.用Spring Security该怎么办? 2. 解决方案 我们可以通过多次继承WebSecurityConfigurerAdapter构建多个HttpSecurity.HttpSecurity 对象会告诉我们…
1. 前言 我们上一篇介绍了UsernamePasswordAuthenticationFilter的工作流程,留下了一个小小的伏笔,作为一个Servlet Filter应该存在一个doFilter实现方法,而它却没有,其实它的父类AbstractAuthenticationProcessingFilter提供了具体的实现.稍后我们会根据这个实现引出今天的主角AuthenticationManager,来继续介绍用户的认证过程. 2. AbstractAuthenticationProcessi…
文章目录 1. 前言 2. 我们使用 Spring Security 登录后都做了什么 2. 退出登录需要我们做什么 3. Spring Security 中的退出登录 3.1 LogoutFilter 3.2 LogoutConfigurer 3.2.1 实现自定义退出登录请求URL 3.2.2 处理具体的逻辑 3.2.3 退出成功逻辑 3.3 Spring Security 退出登录实战 3.3.1 自定义 LogoutHandler 3.3.2 自定义 LogoutSuccessHandl…
1. 前言 Spring Security实战干货系列 现在很多项目都有第三方登录或者第三方授权的需求,而最成熟的方案就是OAuth2.0授权协议.Spring Security也整合了OAuth2.0,在目前最新的Spring Security 5中整合了OAuth2.0的客户端,我们可以很方便的使用Spring Security OAuth2来实现相关的需求. 接下来跟着胖哥的节奏搞一个第三方授权先直观的感受一下.假设我现在也不会OAuth2.0从零开始,产品给了一个使用码云做授权的需求,我…