@RolesAllowed вмешивается в @RequestMapping - PullRequest
0 голосов
/ 01 октября 2018

В приложении с весенней загрузкой, используя только аннотации, я хочу реализовать защиту

Я добавил @EnableGlobalMethodSecurity(jsr360Enabled=true) в класс конфигурации.класс также имеет аннотацию @EnableSecurity

Теперь, когда я добавляю @RolesAllowed к любому классу @RestController, будь то на уровне метода или уровне, в журналах запуска вообще нет списка классов,вместо этого есть строка: 'Rejected bean name (rest controller class): no URL paths identified'.

У кого-нибудь есть идеи, что может быть причиной этого?

1 Ответ

0 голосов
/ 01 октября 2018

После того, как @ M.Deinum указал мне путь, я немного почитал и получил объяснение.Если кто-то может уточнить или поправить меня в более технических деталях, чувствую себя очень радушно.

Spring прокси-классы соединяют вместе бины.

  • Классы, которые не реализуют интерфейс, проксируются с помощью CGLib для создания подкласса с дополнительной функциональностью
  • классов, которые do реализует интерфейс, Spring использует динамический прокси для доступа к функциональности класса, но при этом он может только методы интерфейса прокси.

в моем случае мой контроллер реализует интерфейс с методами, не относящимися к конечной точке, поэтому Spring игнорирует все методы обработки, а RequestMappingHandlerMapping не находит никаких методов для привязки, потому что, если только «видит» интерфейсметоды класса

, использующие @EnableGlobalMethodSecurity(proxyTargetClass=true), заставляют использовать CGLib, поэтому полные методы распознаются нашим картографом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...