在控制器上使用PrePost注释的一个常见问题是Spring方法的安全性基于Spring AOP,默认情况下,该方法是使用JDK代理实现的。
这意味着它在作为接口注入到控制器层中的服务层上可以正常工作,但是在控制器层上它会被忽略,因为控制器通常不实现接口。
以下是我的看法:
你必须添加@EnableGlobalMethodSecurity(prePostEnabled = true)
WebSecurityConfig。
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {