栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringSecurity&JWT(Springboot)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringSecurity&JWT(Springboot)

SpringSecurity&JWT(Springboot)

SpringSecurity&JWT的流程

登录校验大体流程

认证

Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。

AuthenticationManager接口:定义了认证Authentication的方法

UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法。

UserDetails接口:提供核心用户信息。通过UserDetailsService根据用户名获取处理的用户信息要封装成UserDetails对象返回。然后将这些信息封装到Authentication对象中。

个人理解: 认证 自定义登录接口,注入AuthenticationManager对象,封装Authentication对象(此时只有密码和用户名),AuthenticationManager调用DaoAuthenticationProvider 的方法认证, DaoAuthenticationProvider 再去调用userDetailsService的实现类 根据用户名 获取用户信息(包括 密码,权限),并返回userDetails对象,再通过PasswordEncoder比较Authentication和UserDetails的密码是否相等,相等就把权限信息存入Authentication中并返回Authentication对象,在Authentication得到用户信息,若认证成功,则使用工具类生成token,放入响应头返回前端,并把用户信息存入到redis中; 校验 登录之后,再访问其他接口获取资源,会通过一个自定义的Filter,用来解析token,得到userid,去redis中拿到用户信息(包括 密码,权限),存入SecurityContextHolder,然后会经过之后的过滤器 授权

设计数据库表,使用注解设置方法权限

例如 @PreAuthorize(“hasAuthority(‘system:test:list111’)”)

注销 从SecurityContextHolder中获取userid,通过userid删除redis中的用户信息即可完成退出系统;

%%资料或源码私聊或评论
%%ps:图片转载自B站up主三更

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号