MethodSecurityInterceptor для нескольких методов

Я бы хотел защитить свой уровень сервисов с помощью Spring Security. Как объясняется в документации, мне нужно использоватьMethodSecurityInterceptor это проверит, разрешен ли вызов метода.

Чтобы решить, разрешен ли вызов метода службы для данного пользователя, влияющий на требуемую роль вызываемого метода (используяMethodSecurityMetadataSource) мне недостаточно, так как это также зависит от параметров, передаваемых методу. Как предлагается в документации, я могу написать кастомAccessDecisionVoter и получить доступ к аргументам через защищенный объект (MethodInvocation в этом случае).

Но моя логика авторизации отличается в разных методах. Например, аргументы могут быть разными в разных методах, и логика авторизации также будет разной.

Я вижу два варианта:

Я могу использовать условную логику вAccessDecisionVoter определить вызываемый метод и используемую логику авторизации, но это кажется уродливым решением.Я могу определить одинMethodSecurityInterceptor за метод, чтобы обеспечить. Согласно весенней документации,MethodSecurityInterceptor используется для защиты многих методов, так что это заставляет меня думать, что есть другой способ.

Тот же вопрос существует для решения о доступе после вызова метода (используяAfterInvocationProvider).

Какие есть альтернативы?

Ответы на вопрос(2)

Ваш ответ на вопрос