我的应用程序中有此方法,我想授权仅在特定组织中具有权限1,2
的用户执行此方法。我已经重写了方法hasPermission
以基于userid
和organizationId
进行检查,如果他在数据库中具有1,2
权限,但是我无法在organisationId
批注中传递变量@PreAuthorize
。
@GetMapping(value="api/v1/oroganisation/{organisationId}")
@PreAuthorize("hasPermission('organisationId','[1,2]')")
public String hello(){
return "Hello";
}
最佳答案
使用organisationId
属性将hello()
作为方法参数注入到@PathVariable
方法中。然后,您可以在organisationId
表达式中引用@PreAuthorize
,方法是在其前面加上#
字符,即#organisationId
。
有关完整的详细信息,请参见documentation部分15.3.1。