Я хотел бы знать, безопасно ли вводить постоянную сущность с помощью @AuthenticationPrincipal
в методе, обозначенном @RequestMapping
.
Моя проблема заключается в следующем:
@GetMapping("/orders")
public List<OrderDto> getOrders(@AuthenticationPrincipal User user) { ... }
в приведенном выше коде метод должен вернуть все заказы для текущего зарегистрированного пользователя (что он и делает), однако, если я изменю код следующим образом
@GetMapping("/orders")
public List<OrderDto> getOrders(User user) { ... }
, тогда я смогу получить заказы для всехпользователи (путем изменения роли пользователя на администратора в запросе http).Возможно ли что-то подобное при использовании @AuthenticationPrincipal
?Как аннотация @AuthenticationPrincipal
гарантирует, что возможный злоумышленник не сможет внедрить какой-либо вредоносный код в сущность?
Для пояснения, сущность User
помечена @Entity
.
Я сейчас использую Spring Security 5.1.4.