基于如下版本验证
spring boot : 2.7.7
spring-security: 5.7.6
加了 @RolesAllowed/@Secured/@PreAuthorize 注解,但是未生效
需要加上 EnableGlobalMethodSecurity , 并根据需要将值配置为 true
- jsr250Enabled 允许我们使用 @RolesAllowed 注解
- securedEnabled 开启则可用 @Secured 注解
- prePostEnabled 开启则可以支持 spring-security 的 pre/post 注解,功能使用更灵活
@EnableGlobalMethodSecurity(
jsr250Enabled = true,
securedEnabled = true,
prePostEnabled = true
)
@EnableWebSecurity 可加可不加
只要引入 spring-security 会自动加载默认配置
如何移除 权限的 ROLE_
前缀
不想存到数据库的角色信息需要加 ROLE_, 也不想在鉴权后,权限列表拼上 ROLE_前缀
/**
* 调整角色前缀,不注入默认会加 ROLE_
* @return
*/
@Bean
public static GrantedAuthorityDefaults grantedAuthorityDefaults() {
return new GrantedAuthorityDefaults("");
}
持续补充中
可运行 demo
https://github.com/imeay/mimeay_security
网友评论