Я пытаюсь получить аннотацию @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'
, и было бы удобнее иметь обобщенную аннотацию класса.