【养老项目】项目学习心得图解day05 (有补充)SpringSecurity认证授权

Day05 SpringSecurity认证授权

一、基本概念

请求认证: 判断一个用户是否为合法用户的处理过程,最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确,如下图所示:
在这里插入图片描述
授权: 就是用户登录后,控制用户是否有权限访问某些资源。如下图所示:
在这里插入图片描述
SpringSecurity基本原理
在这里插入图片描述
各种过滤器
在这里插入图片描述

二、利用Springsecurity从数据库获取用户信息

在这里插入图片描述

UserDetails 的作用

UserDetails 在 Spring Security 框架中主要担任获取用户信息的接口,通过该接口就能拿到用户的信息和验证用户的信息。项目中我们自定义UserAuth 类使得可以Spring Security 中管理用户的身份信息,处理登录认证以及基于角色或权限的授权。

方法名作用
Collection<? extends GrantedAuthority> getAuthorities()授予用户的权限
String getPassword()用户的密码(当前密码是经过加密后的)
String getUsername()获取用户名
boolean isAccountNonExpired()用户的账号是否过期(true 未过期 false 已过期)
boolean isAccountNonLocked()用户的账号是否被锁定(true 未被锁定 false 被锁定)
boolean isCredentialsNonExpired()用户的凭据(密码)是否已过期(true 未过期 false 已过期)
boolean isAccountNonExpired()用户是否启用(true 启用 false 禁用)

securityFilterChain方法会在应用启动时自动被调用,创建一个SecurityFilterChain Bean,并被Spring Security注册到过滤器链中。

三、SpringSecurity整合jwt

在这里插入图片描述

四、自定义授权管理器

在这里插入图片描述
将用户信息存入上下文用到了ThreadLocal类。

ThreadLocal 的工作原理

ThreadLocal 提供了一种线程隔离的机制,每个线程都会有自己独立的变量副本,这样可以避免多线程操作共享变量时出现的数据竞争。
subjectThreadLocal 是一个 ThreadLocal 对象。
通过 setSubject(String subject) 方法,数据被设置到当前线程的局部变量中。
当调用 getSubject() 时,ThreadLocal 返回当前线程所存储的值。

本人水平有限,有错的地方还请批评指正。

什么是精神内耗?
简单地说,就是心理戏太多,自己消耗自己。
所谓:
言未出,结局已演千百遍;
身未动,心中已过万重山;
行未果,假想灾难愁不展;
事已闭,过往仍在脑中演。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的小熊猫_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值