SpringBoot整合SpringSecurity+JWT(三更草堂)

b站学习三更草堂springsecurity的笔记
相关代码笔记源自b站up主三更草堂,up估计参考了若依.讲的很好,大家想要深入了解可以去一键三连,可以去加群获取笔记

SpringBoot前后端分离项目实战-博客项目-Java项目
SpringSecurity框架教程-Spring Security+JWT实现项目级前端分离认证授权

我这就不废话了,估计各位也不想了解太深.这里我整合springboot,直接提供视频里demo.
clone下来应该可以直接跑起来.稍微改一下就可以加入到自己的项目里.具体代码实现原理可以去看视频.这里默认读者对jwt与security都有一点点概念
demo地址

https://gitee.com/hwp_ing/git-test.git

认证

demo只提供登录登出两个方法

@RestController
public class BlogLoginController {
    @Autowired
    private BlogLoginService blogLoginService;

    @PostMapping("/login")
    public ResponseResult login(@RequestBody User user){
        return blogLoginService.login(user);
    }
    @PostMapping("/logout")
    public ResponseResult logout(){
        return blogLoginService.logout();
    }
}

主要关注这几个类
BlogLoginServiceImpl
UserDetailServiceImpl
LoginUser
后面会依次讲到


我这里不讲原理,只讲讲流程

  1. 这里框起来的地方只需要传入前端传来的用户名密码,会得出一个authenticate,若为空,就是账户错误,不需要自己去匹配.只需要传入用户名和密码,然后在后面的类UserDetailsServiceImpl查出用户数据就行,校验工作springsecurity帮我门完成.不懂请继续往下看
    在这里插入图片描述
  2. 注意我框起来的地方,这里实现了 UserDetails接口,而且将我们的user实体类注入,返回用户名密码,相当于把我们的user包装成springsecurity需要的样子
    在这里插入图片描述
    3.这里实现了UserDetailsService接口,返回的时我们之前包装的LoginUser类.此时你可以回去看第1,2点,猜测为什么可以不用我们自己校验账户密码了.在这里插入图片描述
    以上就是基本使用了.
    此时整合jwt
    将jwt放入自定义过滤器
    在这里插入图片描述
    security本身就是一堆过滤器的组合,我们也需要在把自定义过滤器添加进去
    在这里插入图片描述
    认证就到此结束了
    可以用postman测试一下,登出的时候需要在header加一个token字段
    在这里插入图片描述
    在这里插入图片描述

授权

前面有一个对权限信息的封装
在这里插入图片描述
首先,先把权限信息传入。
这里主要看这几个东西
1.在配置类里面加上EnableGlobalMethodSecurity(prePostEnable=true)使下面两个接口生效
@PreAuthorize()方法之前
@PostAuthorize()方法之后
这里使用自定义的方法,相比较SpringSecurity自带的方法而言,更加灵活。

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值