学习笔记【Spring Security快速入门】

Spring Security

Web应用的安全性包括 用户认证(Authentication)用户授权(Authorization) 两个部分,这两点也是SpringSecurity重要核心功能。

通俗点说:

  • 用户认证就是系统认为用户是否登录
  • 用户授权就是系统判断用户是否有权限去做某些事

SpringSecurity特点

  • 和Spring无缝整合
  • 全面的权限控制
  • 专门为Web开发而设计
  • 重量级

Shiro特点

  • 轻量级
  • 好处:不局限于Web环境,可以脱离Web环境使用
  • 缺陷:Web环境下一些特定的需求需要手动编写代码定制

简单入门:
在这里插入图片描述
账号:user
密码:会随机生成
在这里插入图片描述

Spring Security入门原理

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

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

过滤器如何进行加载的
使用SpringSecurity配置过滤器 DelegatingFilterProxy
在这里插入图片描述
在这里插入图片描述
FilterChainProxy
在这里插入图片描述

两个重要的接口:
UserDetailsService:
查询数据库用户名和密码过程

  • 创建类继承UsernamePasswordAuthenticationFilter:重写三个方法
  • 创建类实现UserDetailService,编写查询数据库过程,返回User对象,这个User对象是安全框架提供的对象

PasswordEncoder:
数据加密的接口,用于返回User对象里密码加密


实践

设置登录的用户名和密码

  • 通过配置文件
  • 通过配置类
  • 自定义编写实现类

第一种方式:通过配置文件
在这里插入图片描述
第二种方式:通过配置类
在这里插入图片描述

第三种方式:自定义编写实现类

  • 创建一个配置类,设置是用哪个userDetailService实现类
  • 编写实现类,返回User对象,User对象有用户名密码和操作权限

在这里插入图片描述
在这里插入图片描述

完成查询数据库登录

整合MybatisPlus

  • 引入相关依赖
    在这里插入图片描述
  • 创建数据库表
    在这里插入图片描述
  • 创建对应实体类
    在这里插入图片描述
  • 整合mp,创建接口,继承mp的接口
    在这里插入图片描述
@Service("userDetailsService")
public class MyUserDetailService implements UserDetailsService {
   

    @Autowired
    private UsersMapper usersMapper;

    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
   
        //根据用户名查询
        QueryWrapper<Users> wrapper=new QueryWrapper<>();
        //where username=?
        wrapper.eq("username"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值