type
status
date
slug
summary
tags
category
icon
password
😀
spring-security模块的笔记。由于这个模块每次更新都会改动很多API,导致现在网络上很多写法都是过时的。这里记录下模板配置代码,日后若API改动,时常更新。
版本信息
springboot-starter-security版本:3.1.2

📝 Spring-security Startup!

模块引入

这一块不必多说,上maven仓库查最新的依赖方法就行。这里以 gradle-kotlin为例:

基础配置

在引入依赖后直接把项目跑起来,即使其他什么都不写,其实 spring-security 也已经生效了。注意观察,控制台会给我们一个默认的用户,用户名是user,密码为UUID(由于UUID的属性,这个密码可以认为是随机生成的,每次项目启动都会刷新)。
这好吗?这不好。所以我们要自己配置。
题外话: WebSecurityConfigurerAdapter 接口的废弃
值得一提的是 WebSecurityConfigurerAdapter 接口已经在SpringSecurity5.7版本废弃了。所以如果看到老教程中仍使用这个类,可以关掉了。
新建 config/WebSecurityConfig 文件,作为配置文件。注意我们的文件上要标俩注解:
我们在里面能放什么配置呢?
  • 首先就是规定了用户的Bean——UserDetailsService
  • 除了定义用户,我们通常还需要定义用户权限的继承关系。比如,管理员拥有普通用户的所有权限。我们需要用到RoleHierarchy类。在Java中我们这么写:
在Kotlin中可以用apply增加代码的可读性,同时将代码量大大简化:
  • 其次是SecurityFilterChain。这个Bean的作用是进行URL路径拦截,规定哪些资源需要被拦截认证,哪些不用。
 

🤗 总结归纳

事实上在前后端分离开发的模式下,一般采用JWT的方式去实现,此时将许多业务交由前端,后端只需引入JWT有关的依赖就行,无需用到Spring Security。
Spring Security的优势在于可以很方便地将用户的信息储存在cookie中。如果想把验证信息存cookie,可以考虑一下使用捏。

📎 参考文章

 
💡
没错,我又白学辣
开新坑!手写Spring第一章:你没有见过的Kotlin版本[kotlin语法糖]scope functions作用域函数
Niyuta
Niyuta
变分无限,孤心测度有同伦
公告
type
status
date
slug
summary
tags
category
icon
password
🎉热烈庆祝Niyuta拥有了个人网站!🎉
-- 感谢支持喵:) ---
👏网站正在建设中,有bug望不吝反馈赐教~👏
(迟早要重构掉