7. Spring Security 方法授权
我们使用方法级别的授权后,只需要在 controller 对应的方法上添加注解即可了,不需要再
webSecurityConfig 中配置匹配的 url 和权限了,这样就爽多了
7.1 相关注解说明
@PreAuthorize 在方法调用前进行权限检查
@PostAuthorize 在方法调用后进行权限检查
@Secured
上面的三个注解如果要使用的话必须加上
@EnableGlobalMethodSecurity(prePostEnabled = true,securedEnabled = true)
如果只使用 PreAuthorize 就只用开启 prePostEnabled = true
如果只使用@Secured 就只用开启 securedEnabled = true 这种方式不推荐,有坑
坑在这里 @Secured,而@Secured 对应的角色必须要有 ROLE_前缀
7.2 在 WebSecurityConfig 类上添加注解
7.3 注释掉 WebSecurityConfig
7.4 修改 controller,给方法添加注解
不加注解的,都可以访问,加了注解的,要有对应权限才可以访问
@GetMapping("save")
@PreAuthorize("hasAuthority('sys:save')")
public String save() {
return "我是 save 页面";
}
@GetMapping("del")
@PreAuthorize("hasAuthority('sys:del')")
public String del() {
return "我是 del 页面";
}
@GetMapping("update")
@PreAuthorize("hasAuthority('sys:update')")
public String update() {
return "我是 update 页面";
}
@GetMapping("query")
@PreAuthorize("hasAuthority('sys:query')")
public String query() {
return "我是 query 页面";
}