乐途乐途
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
主页
  • 计算机基础

    • TCP/IP
    • Linux
    • HTTP
  • 数据库

    • SQL
    • MySQL 5.7
  • 编程语言

    • C
    • C++
    • Java SE
    • Python2
    • Python3
  • 数据格式

    • JSON
    • XML
  • 认证与安全

    • JWT
  • 工具

    • Markdown
  • Git

    • GitFlow
  • Quartz

    • Quartz
  • Java

    • Maven 入门
    • Maven 进阶
    • MyBatis
    • Spring
    • Spring MVC
  • Java

    • Spring Boot
    • Spring Cloud
    • Spring Cloud Alibaba
    • Spring Security
    • Spring AI
    • Spring Batch
    • Kafka
    • Java 设计模式
  • 缓存

    • Redis
  • 搜索引擎

    • Elasticsearch
  • 分布式协调

    • ZooKeeper
联系
阿里云
  • 学习路径
  • 第1章 Spring Security 基础

    • 本章定位
    • Spring Security 是什么
    • DelegatingFilterProxy
    • 安全过滤器链
    • SecurityFilterChain
    • 过滤器执行顺序
  • 第2章 认证

    • 本章定位
    • Authentication
    • 认证流程
    • AuthenticationManager
    • ProviderManager
    • DaoAuthenticationProvider
    • UserDetails
    • UserDetailsService
    • PasswordEncoder
    • BCryptPasswordEncoder
    • DelegatingPasswordEncoder
    • 表单登录
    • SecurityContext
    • SecurityContextHolder
    • UsernamePasswordAuthenticationToken
  • 第3章 授权

    • 本章定位
    • 授权模型
    • GrantedAuthority
    • AccessDecisionManager
    • AccessDecisionVoter
    • URL 级别授权
    • 方法级别安全
    • @PreAuthorize
    • @PostAuthorize
    • @PreFilter
    • @PostFilter
    • @Secured
    • RoleHierarchy
  • 第4章 过滤器链

    • 本章定位
    • FilterChainProxy
    • SecurityContextHolderFilter
    • LogoutFilter
    • BasicAuthenticationFilter
    • CsrfFilter
    • CorsFilter
    • HeaderWriterFilter
    • AnonymousAuthenticationFilter
    • RequestCacheAwareFilter
    • ExceptionTranslationFilter
    • FilterSecurityInterceptor
  • 第5章 会话管理

    • 本章定位
    • 会话管理
    • SessionFixation
    • 会话并发控制
    • SessionCreationPolicy
    • RememberMe
  • 第6章 JWT

    • 本章定位
    • JWT
    • JwtDecoder
    • JWT 认证
    • JwtAuthenticationConverter
  • 第7章 OAuth2

    • 本章定位
    • OAuth2 基础
    • OAuth2 Client
    • OAuth2 Resource Server
    • 第三方登录配置
  • 第8章 攻击防护

    • 本章定位
    • CSRF 跨站请求伪造防护
    • CORS 跨域防护
    • Clickjacking 点击劫持防护
    • 安全响应头
    • Session Fixation 会话固定防护
  • 第9章 测试

    • 本章定位
    • 安全测试
    • @WithMockUser
    • 最佳实践

"小崔说:'用户抱怨又要注册一个新账号,能不能直接用微信登录?'白歌说:'OAuth2 就是来解决这个问题的——用户通过微信授权,我们拿到 Token 就能识别身份,全程不碰用户密码。'这一章,你将掌握 OAuth2 协议的核心机制及 Spring Security 的 Client 与 Resource Server 实现。"

章节导读:OAuth2 与第三方登录

本章定位

本章解决的核心问题:OAuth2 如何通过授权服务器将用户认证与资源访问解耦,以及 Spring Security 如何实现 OAuth2 Client(第三方登录)和 OAuth2 Resource Server(资源保护)。

学习路线图

学习顺序说明:先理解 OAuth2 协议的核心概念(四大角色、授权码流程、Token 类型)→ 掌握 OAuth2 Client:Spring Security 如何作为客户端接入微信/GitHub/Google 等授权服务器 → 理解 OAuth2 Resource Server:如何保护 REST API,校验传入的 Access Token → 最后通过第三方登录配置实战,将微信/QQ 登录集成到飞翔科技的学生成绩管理系统。

文件关系说明

文件一句话角色
OAuth2基础.mdOAuth2 协议核心:四大角色(Resource Owner/Client/Authorization Server/Resource Server)、授权码流程、Token 类型与 Scope 机制。
OAuth2_Client.mdOAuth2 客户端:Spring Security 作为客户端应用,通过授权码流程获取 Access Token,支持微信/GitHub/Google 等第三方登录。
OAuth2_Resource_Server.mdOAuth2 资源服务器:保护 REST API,校验 JWT 或不透明 Token,提取用户身份与权限。
第三方登录配置.md实战配置:微信/QQ 登录的 ClientRegistration、Redirect URI、UserInfo Endpoint 配置与用户信息映射。

知识图谱

核心逻辑:OAuth2 将用户认证委托给授权服务器(如微信),第三方应用(飞翔科技)永远接触不到用户密码。授权码流程是标准安全流程:应用请求授权 → 用户在授权服务器确认 → 授权服务器返回授权码 → 应用用授权码换取 Access Token → 应用携带 Token 访问资源服务器。Spring Security 5.x 内置了 OAuth2 Client 和 Resource Server 支持,Client 负责接入第三方登录,Resource Server 负责保护 API 端点。

与上下章的衔接

上一章回顾:你掌握了 JWT 无状态认证——服务端通过 Token 自包含信息实现无 Session 认证。OAuth2 授权服务器颁发的 Access Token 通常就是 JWT 格式,两者天然结合。

下一章预告:OAuth2 和 JWT 提供了认证和授权能力,但 Web 应用还面临各种攻击威胁。下一章「常见攻击防护」将系统讲解 CSRF、CORS、Clickjacking、Session Fixation 等攻击的原理与 Spring Security 的防御机制。

下一页
OAuth2 基础