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,可以考虑一下使用捏。
📎 参考文章
没错,我又白学辣
- 作者:Niyuta
- 链接:https://www.niyuta.eu.org/article/spring/spring-security/1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章