使用示例
@Secured({"ROLE_user"})
@GetMapping(value = "get")
public String get() {
return "hello get";
}
踩坑记录:
1、前置条件:必须在@Configuration类中加入如下注解
@Configuration
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// ...
}
2、注解内容:大括号中的字符串内容须加上“ROLE_”前缀
试过写成@Secured({"user"}),此时不论用户含有"user"或"ROLE_user"都校验不通过
查org.springframework.security.access.vote.RoleVoter源码发现@Secured仅支持带前缀的字符串
public boolean supports(ConfigAttribute attribute) {
if ((attribute.getAttribute() != null)
&& attribute.getAttribute().startsWith(getRolePrefix())) {
return true;
}
else {
return false;
}
}
网友评论