Client Controller SysLoginService ThreadLocal AuthManager UserDetailsService PasswordService TokenService Redis SysUserService SecurityUtils 1. POST /login {username,password} 2. login(username,password) 3. loginPreCheck() 抛出UserNotExistsException 返回错误(400) alt 用户名或密码为空 4. setContext(authenticationToken) 5. authenticate(authenticationToken) 6. loadUserByUsername 7. selectUserByUseNo() 8. validate(user) 9. getContext() 返回原始凭证 10. matchesPassword() 抛出BadCredentialsException 认证失败 抛出UserPasswordNotMatchException 返回错误(401) alt 密码不匹配 11. 返回Authentication 12. createToken(loginUser) 13. 存储LoginUser(login_tokens:uuid) 14. 返回JWT 15. clearContext() 16. 返回token 17. 响应Token(200) Client Controller SysLoginService ThreadLocal AuthManager UserDetailsService PasswordService TokenService Redis SysUserService SecurityUtils
相关推荐
Old Uncle Tom9 分钟前
银行用户画像 -- 金融目标与需求意图IT_陈寒15 分钟前
Vue的响应式让我加班到凌晨3点,原来问题出在这东方小月15 分钟前
从0开发一个 Coding Agent(一):前言恋猫de小郭15 分钟前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」ji_shuke38 分钟前
远程排查 Web 系统问题:如何导出 HAR 文件协助定位学计算机的计算基1 小时前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定tachibana21 小时前
hot100 前 K 个高频元素(347)程序员爱钓鱼1 小时前
Rust String 与 &str 详解:字符串所有权、借用与转换万亿少女的梦1681 小时前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现