springsecurity-基本原理(过滤器链)
接下来介绍下两个接口:UserDatailsService 和 PasswordEncoder ,下面依次来介绍:
我们需要实现这个接口,接口中让我们实现一个方法,而我们操作数据库查找用户名和密码的代码就写在这个方法里面。
来,我们来梳理之前的知识,之前讲过一个类:UserNamePasswordAuthenticationFilter,这个类中有3个方法:
attemptAuthentication():这个方法内部是用来获取 表单的 用户和密码的 ,并判断用户名和密码是使用默认的还是我们自定义的
successfulAuthentication():认证成功后 调用的方法
unsuccessfulAuthentication():认证失败后 调用的方法
如果我们对 这3个方法里面的不满意,可通过继承UserNamePasswordAuthenticationFilter来重写。
一般是调用attemptAuthentication()拿到用户名和密码,如果是自定义用户名和密码的,后面就会调用 UserDatailsService 的 一个方法,因此我们需要实现该接口并重写该方法,该方法会返回一个实体类对象,我们的指定或查询出来的用户名和密码要封装在这里面,后面会对比这个实体类里的用户名和密码和 页面传过来 的进行对比。
上面的接口其实就是一个加密用的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~