尚硅谷-SpringSecurity

一、SpringSecurity是什么

SpringSecurti基于Spring框架,提供了一套Web应用安全性的完整解决方案
一般来说,Web应用的安全性包括用户认证(Authenticataion)和用户授权(Authorization)两个部分
这两点也是Spring Security重要核心功能
(1)用户认证:用户是否能登录
(2)用户授权:用户是否有权限去做某些事情

二、SpringSecurity与Shiro对比

SpringSecurity特点:
(1)和Spring无缝整合
(2)全面的权限控制
(3)专门为Web开发而涉及
(4)重量级(缺点)
Shiro特点:
(1)轻量级
(2)通用性
总结: 功能强于Shiro,但比Shiro复杂

三、SpringSecurity引入

在这里插入图片描述
此时访问接口会先弹出用户登录页面
用户名:user
密码:在这里插入图片描述

四、SpringSecurity基本原理

SpringSecurity本质是一个过滤器链,有很多过滤器

通过查看源码
FilterSecurityInterceptor:是一个方法级的权限过滤器,基本位于过滤链的最底部
ExceptionTranslationFilter:是个异常过滤器,用来处理再认证授权过程中抛出的异常
UsernamePasswordAuthenticationFilter:对/login的POST请求做拦截,校验表单中用户名,密码

过滤器是如何加载的?
(springboot会自动化配置)
在这里插入图片描述
两个重要接口

UserDetailsService接口: 查询数据库用户名和密码过程
当什么也没有配置的时候,账号和密码是由Spring Security定义生成的。而在实际项目中账号和密码都是从数据库中查询出来的。所以我们要通过自定义逻辑控制认证逻辑。
如果需要自定义逻辑,只需要实现UserDetailsService接口即可。
(1)创建类继承UsernamePasswordAuthenticationFilter,重写三个方法
(2)创建类实现UserDetailService,编写查询数据过程,返回User对象,这个User对象是安全框架提供对象
PasswordEncoder接口: 数据机密接口,用于返回User对象里面的密码

五、Web权限方案

(1)认证
(2)授权

1、设置登录的用户名和密码
第一种方式:通过配置文件
在这里插入图片描述
第二种方式:通过配置类
在这里插入图片描述
第三种方式:自定义编写实现类
第一步:创建配置类,设置使用哪个userDetailsService实现类
在这里插入图片描述
第二步:编写实现类,返回User对象,User对象有用户名密码和操作权限
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值