SpringBoot第五篇SpringSecurity 认证机制
一、SpringSecurity主要用于鉴权和授权功能,他的过滤器链路如图
- BasicAuthenticationFilter实现的是HttpBasic模式的登录认证
- UsernamePasswordAuthenticationFilter实现用户名密码的登录认证
- RememberMeAuthenticationFilter实现登录认证的“记住我”的功能
- SmsCodeAuthenticationFilter实现短信验证码登录认证
- SocialAuthenticationFilter实现社交媒体方式登录认证的处理
- Oauth2AuthenticationProcessingFilter和Oauth2ClientAuthenticationProcessingFilter实现Oauth2的鉴权方式
一、登录认证,调用方法ip/login,自动触发UsernamePasswordAuthenticationFilter过滤器
自定义过滤器,继承该过滤器,可以实现验证之前的操作,比如验证码判断
1.重写验证方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public Authentication attemptAuthentication(HttpServletRequest req, HttpServletResponse res) throws AuthenticationException { try { String username = req.getParameter( "username" ); String password = req.getParameter( "password" ); //验证码判断,手机验证码判断等 // 将用户信息放入authenticationManager return authenticationManager.authenticate( new UsernamePasswordAuthenticationToken( username, password, Collections.emptyList()) ); } catch (Exception e) { throw new RuntimeException(e); } } |
2、验证成功方法重写,可以返回token等数据
1 2 3 4 | protected void successfulAuthentication(HttpServletRequest req, HttpServletResponse res, FilterChain chain, Authentication auth) throws IOException, ServletException { //返回处理的token } |
3、
posted on 2021-11-01 17:17 topguntopgun 阅读(234) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人