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
相关推荐
kyriewen3 小时前
Anthropic 估值逼近万亿美元,Claude Sonnet 5 + Claude Science 一天两连发小徐_23335 小时前
Wot UI 2.2.0 发布:Button 新增 subtle,VideoPreview 预览体验继续增强天蓝色的鱼鱼7 小时前
关于 CSS 你可能不知道的属性,但关键时刻很有用泯泷8 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool妙码生花8 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装泯泷8 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM团团崽_七分甜8 小时前
Spring Boot 核心知识点总结lichenyang4538 小时前
从一个按钮开始,理解 ASCF 框架到底在做什么古夕8 小时前
第三方 SSO 接入实践:redirect_uri 编码、回调一致性与跨项目联调