Описание
Spring Security – это самый популярный фреймворк для аутентификации пользователей и ограничения доступа в Enterprise приложении. В данном курсе рассматриваются механизмы аутентификации и авторизации (и их практическое применение).На курсе рассматриваются:
1. Теоретические основы задачи ограничения доступа к Enterprise приложению.
2. Абстракции Spring Security.
3. Настройка конфигурации Spring Security на практике.
4. Применение Spring Security для ограничения доступа к различным частям приложения.
Данный курс содержит множество заданий, включая интерактивные упражнения.
удостоверение о повышении квалификации государственного образца
Цели
- научиться решать различные задачи аутентификации;
- научиться управлять доступом в Enterprise приложении с помощью Spring Security.
Целевая аудитория
Предварительная подготовка
- Опыт работы с 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%)
Примечание
Java-разработчик с опытом коммерческой разработки более 5 лет в крупном российском финтех-проекте. Выполнял задачи по направлениям back-end (Java) и front-end (JavaScript, Angular). Работал в качестве разработчика, руководил командой разработки, проводил технические интервью и был ментором начинающих специалистов.
Образование:
EPAM University Program
Java Web Programming, Java Web
Рязанский государственный радиотехнический университет
Факультет «Автоматики и информационных технологий в управлении, Управление в технических системах»