【发布时间】:2019-01-24 22:12:39
【问题描述】:
我试图让控制器类上的@PreAuthorized 注释与同一类的方法(端点)上的@PreAuthorized 注释一起工作。 该类的概述如下所示:
@RestController
@RequestMapping("/api")
@PreAuthorized("hasRole('CLASS_LEVEL_ROLE')")
public class foo {
@GetMapping("/test")
@PreAuthorized("hasRole('METHOD_LEVEL_ROLE')")
@Timed
public ResponseEntity<String> bar() {
return ResponseEntity.ok().body("entered method successfully");
}
}
目前正在发生的只是方法级别的注释被考虑在内。
理想情况下,只有角色为“CLASS_LEVEL_ROLE”和“METHOD_LEVEL_ROLE”的用户才被允许访问 bar()。
我知道我可以使用
@PreAuthorized("hasRole('CLASS_LEVEL_ROLE') and hasRole('METHOD_LEVEL_ROLE')")
但是我有一些控制器,所有端点都必须具有相同的'CLASS_LEVEL_ROLE',并且使用通用类注释会更方便。
【问题讨论】:
标签: java spring annotations spring-security-oauth2