项目中使用了SpringBoot 2.7.4
的版本,然后对应的Spring Security 是5.7.3 的版本,在使用Spring Security 过程中有一定的变化。
首先就是配置的方式,之前我们会继承WebSecurityConfigurerAdapter
,而在新版中是直接以接口的形式声明配置,其余的配置大同小异,当然增加了很多新的方法,但是也可以使用以前熟悉的配置方式。
这里主要说一下我在使用withObjectPostProcessor
时由于手残遇到的问题,将配置时http.authorizeRequests()
写为了http.authorizeHttpRequest()
,由于它们代码提示中可以配置的方法基本都一样导致我一直没发现,最后重新敲配置文件时才看到了这里的差异,随后就去官网中查找了它们的差异,具体差异大家可以查看官方的【原文介绍】。我这里大体的说一下,总的来说authorizeHttpRequest
是官方在未来版本中将要主要推荐的配置方式。它对authorizeRequests
对改进有一下几点:
如果你使用了authorizeHttpRequests
,那么使用withObjectPostProcessor
去配置我们自定义的元数据源和权限决策配置时是无效的,因为不会进去,很好奇为什么既然这个用起来有这么大的坑,官方还给它留了这个方法,可能是我不会用吧,但是我改成authorizeHttpRequests
后所有的配置是正常可以使用的。