spring auth 核心流程详解

核心流程图(Token 颁发阶段)


🎯 常用扩展点说明(按流程顺序)

序号 扩展点 配置方式 典型用途 代码示例位置
1 ClientDetailsService clients.withClientDetails(customService) 从数据库、Redis 等动态加载客户端信息,支持客户端动态注册 AuthorizationServerConfig.configure(ClientDetailsServiceConfigurer)
2 TokenGranter endpoints.tokenGranter(customGranter) 自定义 grant_type(如短信验证码、手机号一键登录) AuthorizationServerEndpointsConfigurer.tokenGranter()
3 UserDetailsService endpoints.userDetailsService(customService) 自定义用户数据源(非默认的 loadUserByUsername) 在 AuthorizationServerEndpointsConfigurer 中注入(你的代码中注释了该行)
4 AuthorizationCodeServices endpoints.authorizationCodeServices(customService) 自定义授权码的存储方式(默认是内存,可改为 Redis、数据库) AuthorizationServerEndpointsConfigurer.authorizationCodeServices()
5 TokenStore endpoints.tokenStore(customStore) 自定义 Token 存储策略(Redis、JWT、JDBC) AuthorizationServerEndpointsConfigurer.tokenStore()
6 TokenEnhancer endpoints.tokenEnhancer(customEnhancer) 向 AccessToken 添加额外信息(如用户 ID、租户 ID),或生成 OIDC 的 id_token 你代码中 @Bean TokenEnhancer
7 WebResponseExceptionTranslator endpoints.exceptionTranslator(customTranslator) 统一异常响应的格式(例如统一返回 JSON 格式的错误信息) AuthorizationServerEndpointsConfigurer.exceptionTranslator()

📌 总结

  • 核心流程 :从客户端请求 /oauth/token 开始 → 客户端认证 → 用户认证(若需要)→ 生成原始 Token → Token 增强 → 存储 → 返回。

  • 最常用的扩展点:

    • TokenStore:切换 JWT / Redis 存储。

    • TokenEnhancer:自定义 Token 内容。

    • ClientDetailsService:让客户端配置可动态管理。

    • WebResponseExceptionTranslator:美化异常响应。

相关推荐
脚本自动化开发1 小时前
折叠双屏MU156LA:写稿修图游戏体验
后端
脚本自动化开发1 小时前
AI短剧800集讲规矩,观众忘了是AI
后端
Csvn3 小时前
安装、升级与目录结构
后端·nginx
皮皮林5514 小时前
万能通用!权限系统就该这么设计
后端
2601_962106644 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice5 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
GoAI5 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
2601_962106645 小时前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
橙子家6 小时前
RESTful 接口:它并非标准或协议,而是一种【架构风格】
后端
杨凯凡6 小时前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理