一,概述
Spring Security是基于Spring框架,,提供了一套解决web应用安全性的完整解决方案,重量级框架,与springboot结合使用更方便。
Spring Security的本质是一个过滤器链,有很多过滤器,比如UsernamePasswordAuthenticationFilter-对/login的post请求做拦截验证表单的用户名和密码
核心功能:用户认证和用户授权
二,接口
1.用户名、密码
默认的是用户名:user,密码是生成的,实际应用中要查询数据库
接口:UserDetailsService、PasswordEncoder
第三种方式:自定义
1.添加数据源依赖
2.配置数据库
3.创建user表,添加字段和数据
4.创建user的实体类
5.创建类实现UserDetailsService,实现loadUserByUsername的方法返回user
6.在loadUserByUsername中实现根据用户名查询数据库
security的实现过程
1.认证过滤器(源码)
第一步:过滤器判断是否是post请求
第二步:得到表单的用户名密码和数据库验证是否正确,认证成功后封装到对象中
得到表单数据,标识属性未认证
把请求的属性信息放到对象里调用方法(userDetail)进行数据验证
第三步:session的策略处理
第四步:认证失败抛出异常,执行认证失败的方法;认证成功,执行认证失败的方法