当前位置: 首页 > web >正文

【UserDetailsService】

UserDetailsService

  • 认识userdetailsservice
  • 认识userdetails

认识userdetailsservice

在这里插入图片描述
如图所示,Authentication Filter将身份验证请求委托给AuthenticationManager,后者使用AuthenticationProvider处理身份验证。

Authentication Provider使用UserDetailsService来实现用户管理职责。它的主要职责是根据用户名从内存中或数据库中查找用户。

认识userdetails

UserDetails是Spring Security框架中的一个核心接口,用于表示用户的详细信息。

UserDetails接口主要用于封装从数据库中加载的用户详细信息。这些属性包括用户名、密码、权限、账户状态等,确保用户信息的安全性和完整性‌。

@Data
public class LoginUser implements UserDetails {/*** 用户ID*/private String useNo;/*** 用户信息*/private SysUser user;/*** 权限列表*/private Set<String> permissions;public LoginUser(String useNo,  SysUser user, Set<String> permissions){this.useNo = useNo;this.user = user;this.permissions = permissions;}@Overridepublic Collection<? extends GrantedAuthority> getAuthorities() {return null;}@Overridepublic String getPassword() {return user.getPassword();}@Overridepublic String getUsername() {return user.getUseName();}/*** 账户是否未过期,过期无法验证*/@Overridepublic boolean isAccountNonExpired() {return true;}/*** 指定用户是否解锁,锁定的用户无法进行身份验证** @return*/@Overridepublic boolean isAccountNonLocked() {return true;}/*** 指示是否已过期的用户的凭据(密码),过期的凭据防止认证** @return*/@Overridepublic boolean isCredentialsNonExpired() {return true;}/*** 是否可用 ,禁用的用户不能身份验证** @return*/@Overridepublic boolean isEnabled() {return true;}
}
http://www.xdnf.cn/news/2652.html

相关文章:

  • Axios 传参与 Spring Boot 接收参数完全指南
  • 对VTK中的Volume Data体数据进行二维图像处理
  • JVM 自动内存管理
  • 推荐一个微软官方开源浏览器自动化工具,可以用于UI自动化测试、爬虫等,具备.Net、Java、Python等多个版本!
  • 搭建 Spark YARN 模式集群指南
  • 服务器硬件老化导致性能下降的排查与优化
  • 并发设计模式实战系列(8):Active Object
  • Axure疑难杂症:利用中继器制作三级下拉菜单(逻辑判断进阶)
  • CSS 预处理器与模块化:Sass/LESS 实战技巧
  • 基于 Spring Boot 瑞吉外卖系统开发(九)
  • 数据结构之顺序表
  • 【iOS】OC源码阅读——alloc源码分析
  • uni-app(vue3)动态获取swiper的区域高度以及通过scroll-view实现区域滚动和scroll-view的置顶功能
  • LangChain入门(二)安装开发环境
  • 【论文复现】SmoothQuant的安装与使用
  • (云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍
  • 亚马逊云科技2025战略解析:AI驱动下的全球生态重塑
  • 链表相关——Python实现
  • 【Rust通用集合类型】Rust向量Vector、String、HashMap原理解析与应用实战
  • 使用 MQTT - C 访问 IoTDA 平台:一个完整的嵌入式示例
  • Java面试场景深度解析
  • 排序--数据结构初阶(4)(C/C++)
  • QT开发技术【qcustomplot 曲线与鼠标十字功能】
  • 【C++ Qt】快速上手 显⽰类控件(Label、LCDNumber、ProcessBar、CalendarWidget)
  • Java项目技术栈使用场景深度解析
  • el-Input输入数字自动转千分位进行展示
  • Golang|外观模式和具体逻辑
  • 前端:纯HTML、CSS和JS菜单样式
  • 如何免费把PPT的页面输出为透明的图片-快速制作图新说汇报内容
  • 【Java开发日记】OpenFeign 的 9 个坑