这几天学习了如何用SpringSecurity来判断用户权限并控制访问。接下来我来详细讲解一下如何配置Spring Security,以后大家可以少走弯路。
我的环境是 IntelliJ + MySQL + Gradle
项目GitHub地址:https://github.com/RobbieXie/MySpringSecurity 大家可以clone下来后通过gradle导入项目即可。
项目的最终成果如下:
1. MySQL数据库有一张Account表,里面记录有用户的username和password
2. 通过SpringSecurity设置了不同路径的访问权限,只允许访问主要和/root/auth 认证路径
3. 当用户登陆后,可以进行全部路径的访问!
就功能上而言,SpringSecurity通过实现UserDetailService来允许用户实现自己的验证用户名密码权限的逻辑,在我的项目当中,用户的用户名密码信息
存在了MySQL数据库中,通过实现UserDetailServiceImpl 完成了对数据库信息的查询,从而让Security进行自动验证。
具体的细节大家可以把我的代码下下来跑一下,代码难度并不大,相信大家一看就可以了解其中原理。 此外,Spring对Session的管理通过sesson-management
来进行,大家在完成了这里的学习后,可以在更深入的研究下对session-management的设置!