Spring Security – это самый популярный фреймворк для аутентификации пользователей и ограничения доступа в Enterprise приложении. В данном курсе рассматриваются механизмы аутентификации и авторизации (и их практическое применение). На курсе рассматриваются: 1. Теоретические основы задачи ограничения доступа к Enterprise приложению. 2. Абстракции Spring Security. 3. Настройка конфигурации Spring Security на практике. 4. Применение Spring Security для ограничения доступа к различным частям приложения. Данный курс содержит множество заданий, включая интерактивные упражнения. После прохождения курса выдается удостоверение о повышении квалификации государственного образца Цели: научиться решать различные задачи аутентификации; научиться управлять доступом в Enterprise приложении с помощью Spring Security. Целевая аудитория: Java разработчики с опытом работы от года (требуется опыт в Spring + Spring Boot) Предварительная подготовка: Опыт работы с Java SE >= 8 Опыт работы со Spring Framework и Spring Boot или пройденный JVA-010 Владение каркасом разработки Spring Framework 5. Разбираемые темы: 1. Введение в Spring Security – 2 ч. (теория – 1 ч. 30 мин., практика – 30 мин.) Задачи безопасности Идентификация, аутентификация, авторизация Примеры конфигурации Spring Security Лабораторная работа «Обзор применения Spring Security» (30 мин.) Возможности Spring Security 2. Аутентификация – 12 ч. (теория – 8 ч. 40 мин., практика – 3 ч. 20 мин.) HTTP Basic аутентификация Лабораторная работа «Настройка HTTP Basic аутентификации» (30 мин.) Deny-by-Default/Allow-by-Default Основные абстракции Spring Security Лабораторная работа «Добавление хранилища пользователей» (40 мин.) Интеграция с Web, аутентификация в Web-приложении Servlets API, DelegatingFilterProxy, FilterChain, фильтры Spring Security Form-based аутентификация Токены vs. Session Key CORS, CSRF, CSRF-токен, XSS Лабораторная работа «Логин-форма» (50 мин.) Anonymous аутентификация Лабораторная работа «Добавление анонимной аутентификации» (30 мин.) Remember-Me аутентификация Persistent tokens Hash-based tokens JWT Лабораторная работа «Hash-based токены» (20 мин.) X509 аутентификация Лабораторная работа «Аутентификация с помощью X509 сертификатов» (30 мин.) 3. Авторизация – 4 ч. (теория – 2 ч. 30 мин., практика – 1 ч. 30 мин.) Абстракции авторизации Spring Security Авторизация на основе URL Авторизация на основе вызовов методов @secured, @Pre/POST-аннотации Domain Objects Security (ACL) Лабораторная работа «ACL и авторизация на основе методов» (1 ч. 30 мин.) 4. OAuth 2.0 – 2 ч. (теория – 2 ч.) OAuth 2.0 роли Access- и Refresh-токены Grant Type: Authorization Code Grant Type: Password Grant Type: Client credentials Grant Type: Implicit Домашнее задание Итого: теория – 14,7 ч. (73%), практика – 5,3 ч. (27%)