+7 (812) 703-02-02 info@hse.spbstu.ru

DEV-J340. Разработка приложений с использованием Spring Security

Длительность дисциплины: 32 ак.ч.


Аннотация

Целью реализации модуля «DEV-J340. Разработка приложений с использованием Spring Security» является изучение основ фреймворка Spring Security и приобретение навыков разработки приложений с использованием данного фреймворка.

Знания и умения, полученные в результате изучения

В результате освоения модуля обучающийся должен уметь:
•    реализовывать приложения с повышенными требованиями к безопасности на основе использования фреймворка Spring Security.

В результате освоения модуля обучающийся должен знать:
•    общую архитектуру фреймворка Spring Security;
•    основные аннотации, интерфейсы и классы фреймворка Spring Security;
•    основные принципы разработки приложений с использованием фреймворка Spring Security.

В результате освоения модуля обучающийся должен приобрести практический опыт:

•    разработки приложений с использованием Spring Security Framework.

Содержание дисциплины

Тема 1. Введение в Spring Security
1.1    Общий обзор фреймворка   
    Назначение фреймворка.
    Общие термины и понятия.
    Основные принципы безопасности.
    Основные возможности фреймворка.
1.2    Архитектура Spring Security   
    Общая структура Spring Security Framework.
    Обзор API Spring Security.
1.3    Установка и настройка фреймворка   
    Официальная страница Spring Security.
    Установка из центрального репозитория Maven.
    Использование Gradle.
    Самостоятельная сборка проекта из исходного кода.
1.4    Простейший проект с использованием Spring Security   
    Создание проекта в среде IDE NetBeans.
    Структура проекта по умолчанию.
    Настройка проекта.
    Проверка работоспособности проекта.
Практические занятия   
1.    Установка и настройка среды разработки.
2.    Создание и конфигурирование простого проекта с использованием Spring Security Framework.

Тема 2. Поддержка аутентификации и авторизации пользователей
2.1    Вводные замечания   
    Процесс аутентификации.
    Введение в протокол OAuth.
    Введение в Spring Security OAuth.
    Поддержка аутентификации на основе токенов.
2.2    Security Namespace    
    Вводные замечания.
    Минимальная настройка.
2.3    Аутентификация пользователей   
    Основные сервисы ядра.
    Форма аутентификации.
    Базовая аутентификация.
    Аутентификация отдельного пользователя.
    Аутентификация JDBC-соединений.
    Анонимная аутентификация.
2.4    Авторизация запросов   
    Запрос на авторизацию.
    Подготовка и выполнение запроса на авторизацию.
    Поддержка многопользовательского доступа к ресурсам.
2.5    Управление сессией   
    Открытие сессии.
    Работа в рамках сессии.
    Закрытие сессии.
Практические занятия   
1.    Разработка и настройка компонента приложения, отвечающего за аутентификацию и авторизацию пользователей.
2.    Разработка компонента приложения, поддерживающего веб-сессию клиента.

Тема 3. Безопасность веб-приложений
3.1    Фильтры безопасности   
    Основные определения.
    Обзор API, связанного с фильтрами безопасности.
    Фильтры безопасности ядра.
    Разработка и использование пользовательских фильтров безопасности.
3.2    Защита HTTP/HTTPS каналов.   
    Безопасность HTTP/HTTPS каналов.
    Контроль кеширования.
    Контроль содержимого веб-страниц.
    Контроль фреймов.
    Защита от межсайтового скриптинга (Cross-site Scripting – XSS).
    Пользовательские заголовки безопасности (Security Header).
    Определение CSRF.
    Синхронизация токенов.
    Возможности Spring Security по защите от CSRF.
    Разработка защиты от CSRF.
3.3    Интеграция с Servlet API   
    Методы интерфейса HttpServletRequest.
    Поддержка асинхронных вызовов.
3.4    Шифрование   
    Вводные замечания.
    Класс Encryptors.
    Генерация ключей.
    Шифрование пароля.
Практические занятия   
1.    Использование фильтров безопасности в веб-приложениях.
2.    Разрботка безопасного веб-компонента.

Тема 4. Интеграция с другими фреймворками
4.1    Интеграция с Spring Web (MVC).   
    Аннотация @EnableWebMvcSecurity.
    Аннотация @AuthenticationPrincipal.
    Поддержка асинхронного режима.
4.2    Интеграция с Spring Data   
    Использование Spring Data API.
Практические занятия   
1.    Подключение компонента аутентификации и авторизации к приложению на основе Spring Web.

Тема 5. Промежуточная аттестация

Практические занятия    Зачет