Sping Security-3-动态认证用户信息
1282
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
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动态认证用户信息的实现过程。如果您觉得内容有帮助,欢迎点赞、收藏和转发。
springboot葵花宝典
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
白皮书上线