SpringSecurity动态加载用户权限
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
SpringSecurity动态加载用户权限摘要
本文介绍了如何在SpringSecurity中实现从数据库动态加载用户信息和权限。在前几篇文章中,介绍了SpringSecurity的基础入门、密码加密方式以及认证授权概述。但是,之前的示例中用户信息是直接存储在内存中而非数据库,这与实际开发情况不符。
1. 密码加密处理
在实际开发中,密码需要加密后存储,SpringSecurity推荐使用BCrypt加密方式。提供了密码加密的配置代码。
2. 动态查询用户
用户信息应该从数据库动态查询。文中给出了一个简单的用户表的SQL创建语句以及插入示例数据的SQL语句。
3. 添加依赖
因为使用到数据库和MyBatis,所以需要在pom.xml中添加数据库驱动和MyBatis相关依赖。
4. 配置数据库信息
在application.yml中配置数据库连接信息,包括数据库名称、用户名、密码、驱动和连接地址。
5. 实体类
创建了对应于用户表的实体类TbUser,并使用了MyBatis的注解。
6. 创建Mapper
创建了TbUserMapper接口,定义了根据用户名查询用户信息的方法,并提供了对应的XML配置。
7. 自定义UserDetailsService
实现了UserDetailsService接口的UserDetailsServiceImpl类,用于通过用户名查询用户并构建认证明细对象。
8. 修改SecurityConfig
在SecurityConfig中注入自定义的UserDetailsService,并配置AuthenticationManagerBuilder以使用自定义的UserDetailsService。
文章结尾鼓励读者关注、点赞、收藏,并提供转载注明出处的提示。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)