вот мой код контроллера:
@PreAuthorize("hasRole('CREATE_USER')")
@RequestMapping(method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public UserReturnRO createUser(@Valid @RequestBody UserRO userRO) throws BadParameterException{
return userService.createUser(userRO);
}
Моя потребность в том, что клиент, не имеющий соответствующей роли, пытается создать пользователя, контроллер отвечает "Не разрешен", даже если отправленные данные недействительны. Вместо этого, если клиент (без соответствующей роли) пытается создать пользователя с неправильными данными, мой контроллер отвечает сообщением @Valid (например: "пароль не может быть пустым" ), в то время как я хочу, чтобы он ответил "не авторизованным",
В интерфейсе PreAuthorized
мы можем найти это предложение:
Аннотации для указания выражения для контроля доступа к методу, которое будет оцениваться, чтобы решить, разрешен ли вызов метода или нет.
но кажется, что это не так.