![](https://img-blog.csdnimg.cn/104879df7be24abd9f081bafca439e10.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring Security
文章平均质量分 92
为了方便阅读,文章为正序排列。
使用Spring Security版本5.7.2
阿提说说
一年太久,只争朝夕,绝不畏惧,勇往直前,玩过前端、ASP、VB、PHP、Python、GO、Java、Scala、区块链、大模型等
展开
-
OAuth2的定义和运行流程
开放授权(Open Authorization OAuth) 是一种资源提供商用于授权第三方应用代表资源所有者获取有限访问权限的授权机制。由于在整个授权过程中,第三方应用都无法触及用户的密码就可以获取部分资源的使用权限,所以OAuth是开放安全的。OAuth第一个版本诞生于2007年12月,由于OAuth1.0复杂的签名逻辑以及单一的授权流程存在较大缺陷,随后推出了OAuth2.0,OAuth2.0放弃了OAuth1.0中让开发者感到痛苦的数字签名和加密方案,后面我们要讲的都是指OAuth2.01。....原创 2022-08-07 01:31:03 · 1045 阅读 · 25 评论 -
Spring Security OAuth实现Gitee快捷登录
前面已经介绍了【Spring Security OAuth实现GitHub登录】,但由于GitHub会因网络原因,无法范围,因此该文将介绍如何使用国内的Gitee进行集成登录。原创 2022-08-07 14:54:16 · 1789 阅读 · 19 评论 -
Spring Security OAuth实现GitHub快捷登录
OAuth授权框架和OIDC的核心数据结构及接口,被Client、 Resource Server和Authorization Server所依赖。支持JOSE协议组,具体包含:JSON Web Token(JWT)、JSON Web Signature(JWS)、JSON Web Encryption(JWE)、JSON Web Key(JWK)。Spring Security支持OAuth和OIDC的客户端功能实现包。...原创 2022-08-07 11:38:41 · 1012 阅读 · 6 评论 -
Spring Security OAuth Client配置加载源码分析
这一节我们以前面默认的OAuth2 客户端集成为例,来了解下配置文件的加载,示例见第二、第三节。要学习一个新框架,我一般会按照如下步骤来实施:(1)根据官方文档搭建Demo,先跑起来,有一个整体观(2)分析源码,从Demo的功能配置入手,找到突破口(3)每次分析源码,要带着问题看(4)根据源码分析出来的思路,画架构图、流程图(5)学习框架的实现思路,取其精华去其糟粕码农小胖哥的2022版PDF。............原创 2022-08-12 08:55:39 · 1570 阅读 · 84 评论 -
Spring Security的过滤器链机制
在“码农小胖哥”的文章中提到一个关键的过滤器链,当一个请求 HttpServletRequest 进入时,会通过matches方法来确定是否满足条件进入过滤器链,进而决定请求应该执行哪些过滤器。下面我们将自己来梳理一遍。............原创 2022-08-09 08:00:00 · 2461 阅读 · 129 评论 -
Spring Security内置过滤器详解
根据前面的示例,我们已经知道启动时会加载18个过滤器,并且已经知道了请求会匹配到DefaultSecurityFilterChain并依次通过这18个过滤器。CsrfFilter我们从OAuth2AuthorizationRequestRedirectFilter开始看,OAuth2开头这非常明显。......原创 2022-08-14 08:00:00 · 3965 阅读 · 82 评论 -
为什么加载了两个OAuth2AuthorizationRequestRedirectFilter分析
在前面的示例中,不知道你发现没有,打印出来的过滤器有重复的。这是为什么?带着问题,我们来分析一下源码。原创 2022-08-15 20:44:34 · 803 阅读 · 25 评论 -
Spring Security 自定义授权服务器实践
在之前我们已经对接过了GitHub、Gitee客户端,使用OAuth2 Client能够快速便捷的集成第三方登录,集成第三方登录一方面降低了企业的获客成本,同时为用户提供更为便捷的登录体验。但是随着企业的发展壮大,越来越有必要搭建自己的OAuth2服务器。OAuth2不仅包括前面的OAuth客户端,还包括了授权服务器,在这里我们要通过最小化配置搭建自己的授权服务器。授权服务器主要提供OAuth Client注册、用户认证、token分发、token验证、token刷新等功能。......原创 2022-08-18 08:00:00 · 4742 阅读 · 145 评论 -
Spring Security 自定义资源服务器实践
在前面我们使用最小化配置的方式搭建了自己的授权服务器,现在我们依旧用最小化的方式配置自己的资源服务器。资源服务器负责scope的鉴权、authorities的鉴权、基于用户角色的鉴权等。到此,我们通过自己搭建的授权服务器和资源服务器,完整体验了OAuth2流程,再来体会下第一篇文章中说明的交互流程。在整个流程中,我们使用的是最严密的授权码模式,它将用户引导到授权服务器进行身份验证,授权服务器将发放的访问令牌传递给客户端,目前主流都是使用该模式,因此特别重要,要好好体会。原创 2022-08-21 07:47:56 · 2145 阅读 · 59 评论 -
Spring Security 自定义用户信息端点与多种登录方式共存
我们之前对接第三方OAuth2快捷登录,只要通过配置文件即可实现对接,但是总有一些第三方登录会返回各种各样的格式,导致默认的OAuth2无法使用。为了能够自定义扩展,我们重新创建项目,命名为、。:修改/userinfo,将返回信息包装一下,返回code等属性:自定义获取userInfo的逻辑} }定义了一个Result包装类,这是框架常有的返回结果包装类。userInfoRes . setUsername("阿提说说");} }原创 2022-08-21 22:26:29 · 2204 阅读 · 22 评论 -
Spring Security 之 JWT介绍
Json Web Token 简称JWT,是一个开放的行业标准(RFC 7519),它定义了一种简洁的、自包含的协议格式,用于在通信双方传递JSON对象,传递的信息经过数字签名可以被验证和信任。JWT可以使用HMAC算法或使用RSA的公钥/私钥来签名,防止被篡改。官网: https://jwt.io标准:https://tools.ietf.org/html/rfc7519JWT基于JSON,非常方便解析可以在令牌中自定义丰富的内容,易扩展。原创 2022-09-14 02:53:22 · 1840 阅读 · 35 评论 -
Spring Security 之防漏洞攻击
了解CSRF攻击的最好方式是通过一个具体的例子。假设您的银行网站提供了一个转账页面,允许从当前的登录用户向另一个账户转账,转账单可能如下:Example 1. 转账表单原创 2022-10-24 21:20:23 · 1384 阅读 · 3 评论 -
Spring Security 之密码存储
Spring Security的接口用于执行密码的单向转换,以便可以安全的存储密码。通常用于在认证时将用户提供的密码与存储的密码的比较。原创 2022-10-11 08:00:00 · 966 阅读 · 23 评论