64
приложения описаны в классе WebSecurityConfig который наследуется от
класса WebSecurityConfigurerAdapter (Приложение 4), который находится в
пакете com.platform.configuration.
В данном конфигурационном классе аннотация @Configuration
сообщает фреймворку Spring о том, что данный класс используется для
конфигурации приложения (данной аннотацией помечаются все
конфигурационные классы любого приложения, использующего фреймворк
Spring), аннотация @EnableGlobalMethodSecurity служит для защиты всех
методов приложения, а аннотация @Order отвечает за порядок прохождения
цепочек безопасности библиотеки Spring Security. В теле класса с аннотацией
@Autowired (для автоматического связывания компонентов Spring Framework),
создается приватный экземпляр интерфейса UserDetailsService. Затем в методе
configure описывается цепочка безопасности. В методе http.authorizeRequests
параметр antMatchers указывает на совпадения с путями системы, то есть в
данном проекте в самом начале создается часть цепочки безопасности, которая
разрешает указанные пути всем без исключения (это корень приложения,
доступ к таблицам стилей, шрифтам, изображениям, JavaScript скриптам и
каталогу webjars). За разрешение отвечает метод permitAll. Далее в цепочке
указываются пути, доступные по ролям пользователей, где метод принимает
путь, и проверяет его на наличие доступа по роли (ADMIN или USER), и в
зависимости от соответствия разрешает, или запрещает доступ к ресурсам, и
автоматически разрешает все запросы аутентифицированным пользователям в
пределах их ролей доступа. Далее всем пользователям разрешается доступ к
странице входа, задается параметр входа (email), и разрешаются пути для
функциональности запоминания пользователя и адрес страницы с
предполагаемыми ошибками подключения пользователей (/error).
В методе configure следует указать параметры авторизации с
использованием класса-сервиса userDetailsService, и шифрования паролей
пользователей методом BCrypt. Описание клиентской части безопасности