惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
爱范儿
爱范儿
GbyAI
GbyAI
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
C
Check Point Blog
H
Help Net Security
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
Y
Y Combinator Blog
U
Unit 42
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - Rickie

DeepSeek-V3 解读:优化效率与规模 一步一步构建RAG智能问答系统 Milvus向量数据库入门实践 LangChain轻松入门和开发实践 Hugging Face 轻松入门 PyTorch深度学习零基础入门 Spring Security开发实践 Redis 7.x 入门和开发实战 RedisInsight :Redis 官方可视化工具 Hadoop v3.1 大数据技术快速入门 《Apache RocketMQ 深入浅出》系列文章 Kafka v2.3 快速入门与实践 Apache Doris 轻松入门和快速实践 一步一步编译最新版Apache Doris 0.15版本的详细过程 COLA 4.x和DDD项目实践精粹 阿里开源COLA 4.0源码编译和部署过程 Java实体映射工具MapStruct 与BeanUtils性能比较 阿里DDD项目最佳实践-COLA 架构总览 Java实体映射工具MapStruct详解
Spring Security OAuth2+JWT开发实践
Rickie · 2023-07-16 · via 博客园 - Rickie

如今我们的生活已经进入信息化时代,习惯于将工作、学习贺生活都融入各种各样的web和移动端应用中。这些应用在给我们带来生活便利的同时,我们也不禁担心,与我们自身相关的数据是否处于安全包含之下。

这也是各类公司的技术团队需要考虑的问题,数据安全问题成为这些技术团队必须放在首位的非功能要求。

同时,随着软件环境和需求的变化,软件的架构由单体结构演变为分布式架构,如当前流行的微服务架构。

对微服务架构而言,安全性设计的核心还是认证和授权。但是因为微服务系统中服务之间可以存在相互的调用关系,针对每一个服务,一方面需要考虑来自客户端的请求,另一方面需要考虑来自另一个服务的请求,安全访问控制面临着从客户端到服务、从服务到服务的多种授权场景。

基于上述安全性开发需求,需要引入专门用于分布式环境的认证授权体系,而OAuth2 协议和JWT(Json web token)令牌是应对这种应用场景的有效解决方案。

专栏大纲

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。它是基于 Spring 和 Spring Boot、Spring Cloud 应用程序安全的实现标准。

Spring Security 是一个专注于为 Java 应用程序提供身份验证和授权的框架。与所有 Spring 项目一样,Spring Security 的真正强大之处在于它可以轻松扩展以满足自定义需求。

OAuth2 是一种安全的授权框架,提供了一套详细的授权机制。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。它详细描述了系统中不同角色、用户、服务应用(比如API),以及客户端(比如网站或移动App)之间怎么实现相互认证。

OAuth2定义了一组相对复杂的规范,涉及到:Roles角色、Client Types客户端类型、Client Profile客户端描述、Authorization Grants认证授权、Endpoints终端等。

如今,OAuth 2.0已经是互联网上首选的授权协议。它被广泛使用,从大型互联网公司到小型创业公司,几乎所有的地方都在使用它。

越来越多的开发者开始学习并在实际项目中运用JWT(Json Web Token)技术来保护应用安全,很多公司的应用程序也开始使用JWT来管理用户会话信息。

JWT 提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。 令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的访问。

JWT是一种安全标准,基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息信息的合法性;如果验证成功,会产生并返回一个Token(令牌),用户可以使用这个Token访问服务器上受保护的资源。

本专栏采取了循序渐进和开发实践相结合的编写方式,目标是帮助读者理解Spring Security、OAuth2和JWT等基本概念和工作原理,基于Spring Security 和OAuth2,结合JWT令牌,以最佳的方式来构建分布式环境的认证授权体系。