推荐资料
看见一篇对Spring Security认证流程讲的挺清晰的文章:点击这里Spring Security认证流程
概述
从零开发一款登陆认证系统可能要花费较多的时间,也非常考验你的设计能力,在设计认证授权的过程中,常需要考虑到的问题:如何认证(你是谁)?怎么授权(你能做什么)?如果你想快速搭建, springSecurity
是一个很不错的选择,它帮我们做了大部分事情,我们可以依据我们的认证授权模型,通过配置来实现我们所需要的一些功能,不过基于框架的定制化缺点是你的控制权可能会受到框架的一些限制,你可能不知道框架背后都做了哪些事情。所以学习框架的时候也是先建议学会使用&learn by doing,然后探究其底层的原理。
基于SpringSecurity的认证授权定制
UserDetailService
接口:根据用户名获取用户信息,以供过滤器链后续认证
UserDetails loadUserByUsername(String username):根据用户名返回用户认证信息
UserDetails
接口:描述用户的相关信息
springSecurity
提供了默认的实现类:User(自己实现的时候可以参考一下)。BCryptPasswordEncoder
:它对相同的密码进行加密后可以生成不同的结果
- 定制认证处理成功和失败的逻辑
实现
AuthenticationFailureHandler
和AuthenticationSuccessHandler
接口
参考:
- 《Spring Cloud微服务架构开发实战》、《深入浅出Spring Boot》、
- spring.io/projects/sp…
- mrbird.cc/Spring-Secu…