Sping Security-3-动态认证用户信息

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

Spring Security-动态认证用户信息
概述
本文介绍了如何通过Spring Security动态从数据库获取用户信息进行身份认证。相比前两节的内存存储方法,本节采用Spring Security提供的JdbcUserDetailsManager类,以JDBC方式对接数据库,实现动态认证用户信息。
项目准备
添加依赖
引入MySQL驱动和MyBatis-Plus依赖,以支持数据库操作和数据查询。
添加数据库配置
在application.yml
文件中配置数据库连接,指定MySQL数据库的URL、用户名和密码。
创建表
定义两个数据库表:用户表sys_user
和权限表sys_authorities
,并插入初始数据。
实体类
创建两个实体类UserEntity
和AuthoritiesEntity
,分别映射到用户表和权限表。
实现Mapper
使用MyBatis-Plus实现数据表对应的Mapper接口,以减少代码编写。
添加注解
在项目入口类上添加@MapperScan
注解,以启用Mapper扫描。
UserDetailsService的实现
自定义实现UserDetailsService
接口,通过重写loadUserByUsername
方法,定义从数据库获取用户信息的逻辑。具体实现包括通过查询sys_user
表获取用户信息,并通过sys_authorities
表获取用户权限。
重构认证管理器
在Spring Security的配置类中,注入自定义CustomUserDetailsService
,并在configure(AuthenticationManagerBuilder auth)
方法中指定以数据库方式认证用户信息。
测试
启动项目后,访问登录页面http://localhost:8888/login/page
,使用账号admin
和密码123456
进行登录测试,即可验证动态用户认证功能。
结束语
本文详细介绍了通过Spring Security动态认证用户信息的实现过程。如果您觉得内容有帮助,欢迎点赞、收藏和转发。
想要了解更多内容?



白皮书上线