Используя Spring Security , вы можете добавить аннотацию @PreAuthorize
к классу контроллера *, в котором выполняется логика, например:
@PreAuthorize("@someBean.isUserVerified()")
// or
@PreAuthorize("#{T(com.package.someClass).someStaticAuthenticationMethod()}")
Или вы можете написать свой собственныйСовет АОП с использованием AspectJ.Если вы не против размещения аннотаций на уровне методов, а не на уровне класса, Spring AOP также является опцией.Хотя я буду осторожен при написании вашей собственной реализации security .
Кроме того, Spring поддерживает как безопасность методов (как описано выше), так и веб-безопасность.В веб-безопасности аутентификация + авторизация выполняется на конечных точках HTTP (S), а не на классе / методе.Сравнение можно найти здесь .
* Примечание: Spring рекомендует добавить защиту класса / метода на уровне службы, а не на уровне контроллера, поскольку несколько контроллеров могут ссылаться на одну и ту же службу.