作用
@PreAuthorize 能够在执行方法之前进行权限的认证,支持Spring EL表达式,基于方法注解和权限解决方案,并且只有当@EnableGlobalMethodSecurity(prePostEnabled=true)的时候,该注解才能使用,@EnableGlobalMethodSecurity在Spring安全中心进行配置;
使用场景
@PreAuthorize("@pms.hasPermission('inquiry_aeger_query')")
@ApiOperation(value = "查询问诊小结详情",notes = "查询问诊小结详情(权限inquiry_aeger)")
@GetMapping("/aeger/{inquiryId}")
public R<InquiryAeger> selectAeger(@PathVariable("inquiryId") String inquiryId){
return R.ok(inquiryAegerService.getOne(new LambdaQueryWrapper<InquiryAeger>()
.eq(InquiryAeger::getInquiryId,inquiryId)));
}
@PreAuthorize(“@pms.hasPermission(‘inquiry_aeger_query’)”)是什么意思?
1.pms是Spring容器中的BEAN注入,对应的就是cn.shanxincd.ih.common.security.component;
2.hasPermission就是在PermissionService中定义的方法;
3.当Spring EL表达式返回TRUE时,权限校验通过;