Подтвердить что ты не робот

@EnableGlobalMethodSecurity vs @EnableWebSecurity

Я разрабатываю API REST с помощью Spring 4. Я хотел бы защитить некоторые конечные точки с помощью Spring Security, но на основе того, что я прочитал, это можно сделать либо с помощью @EnableGlobalMethodSecurity, либо @EnableWebSecurity. К сожалению, документация, которую я нашел для них, не ясно объясняет, что они делают (или как они сравнивают). Если я хочу защитить API-интерфейс Spring REST API с проверкой подлинности и авторизацией на основе данных и отношений, объявленных в стандартной реляционной базе данных, каков рекомендуемый метод для достижения этого в Spring 4?

4b9b3361

Ответ 1

EnableWebSecurity предоставит конфигурацию через HttpSecurity, обеспечив конфигурацию, которую вы можете найти с тегом <http></http> в конфигурации xml, это позволит вам для настройки вашего доступа на основе шаблонов URL-адресов, конечных точек аутентификации, обработчиков и т.д.

EnableGlobalMethodSecurity обеспечивает безопасность AOP для методов, некоторые из аннотаций, которые он будет включать: PreAuthorize PostAuthorize также поддерживает JSR-250. Для вас есть еще несколько параметров

Для ваших нужд лучше соединить их. С помощью REST вы можете достичь всего, что вам нужно только с помощью @EnableWebSecurity, так как HttpSecurity#antMatchers(HttpMethod,String...) принимает элементы управления по методам Http