我的应用程序中有此方法,我想授权仅在特定组织中具有权限1,2的用户执行此方法。我已经重写了方法hasPermission以基于useridorganizationId进行检查,如果他在数据库中具有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。

10-06 09:15