Создание безопасного веб приложения с авторизацией и защитой данных.
Аутентификация
Как защитить свое приложение от анонимных пользователей - в этом вам поможет механизм аутентификации. Вы можете настроить вход в приложение по паролю, сертификату, ключам.
Роли
Разделение пользователей по ролям и разграничение прав на страницы, ресурсы, действия. С помощью ролей вы защитите свои страницы от несанкционированного доступа.
SSL шифрование
Обеспечение безопасности передаваемых данных (пароли, логины, формы). Шифрование канала - обязательно для любого веб приложения, которое работает с личными данными
X.509 Сертификаты
Одна из главных боевых единиц при работе с инфраструктурой открытых ключей. С помощью цифровых сертификатов вы можете шифровать данные, проводить аутентификацию пользователя.
Spring Security - это дополнение к стандартным возможностям Spring Framework для обеспечения безопасности веб приложений. Этот инструмент используют практически все Java программисты, которые включают защиту в свои приложения.
Что вам дает использование Spring Security?
- Поддержка всех современных спецификаций по безопасности
- Гибкая и быстрая настройка
- Использование интерфейсов и внедрение объектов
- Включены все возможности Spring IoC и Spring AOP
- Полная интеграция с контейнером Spring
- Интеграция с другими фреймворками (JSF, JSP, Hibernate, Ajax и пр.)
Зачем нужно защищать приложение?
Профессиональное ПО
Если вы стремитесь создавать современные веб приложения, то нужно обращать внимание не только на дизайн, но и на защиту данных пользователей, особенно, если вы разрабатываете проекты в финансовой сфере.
Это отличает "обычное" Java приложение от профессионального.
"Spring Security и SSL шифрованиедля начинающих"
Какие темы вы пройдете?
Введение в Spring Security
Обзор технологии и интеграция с другими спецификациями. Где можно использовать этот инструмент и какие типы защиты существуют.
Подключение библиотек
Добавление необходимых jar файлов с помощью maven, создание шаблонного проекта и тестовый запуск на сервере приложений
Форма аутентификации
Создание формы для входа на сайт со своим дизайном, добавление пользователей, настройки Spring Security и контекста
Фильтрация запросов
Один из главных механизмов работы Spring Security: фильтры. Разбор "внутренней" кухни, интерфейсов и реализаций
Менеджеры Spring
Как изнутри устроена работа менеджеров, которые выполняют всю основную работу фреймворка
Распределение прав
Система "голосования " при получении прав пользователя, менеджеры по работе с правами
Служебные данные
Какие служебные данные используются фильтрами для передачи их по цепочке
Remember-me
Функция запоминания пользователя с записью в куки или базу данных, настройка контекста
Подключение базы данных
Использование базы данных для хранения паролей, пользователей, служебной информации
Группы ролей пользователей
Объединение пользователей в группы для более удобной раздачи прав
Защита методов
Как распределить доступ на выполнение методов в коде с помощью готовых аннотаций
Хеширование
Механизм хеширования паролей пользователей, алгоритмы шифрования
Ассиметричное шифрование
Технология шифрования с двумя ключами, основные термины и алгоритмы
Цифровые X.509 сертификаты
Использование сертификатов для шифрования данных и проверки подписи
Secure Sockets Layer (SSL)
Шифрование данных между клиентом и сервером, алгоритм работы обоих сторон
Настройка HTTPS
Настройка использования SSL в Spring контейнере, проверка канала на защищенность
Хранилища ключей
Работа с Java KeyStore, открытыми и закрытыми ключами, списками сертификатов
Утилиты
Инструменты для более удобного создания ключей, сертификатов, хранилищ
Создание своего центра авторизации
Создание тестового центра по обслуживанию сертификатов
Проверка защищенности канала в браузере
Инструментарий браузеров для проверки соединения
Инфраструктура открытых ключей (ИОК)
Как работает самая популярная схема создания и обмена ключами
Самоподписанные сертификаты
Как создавать запросы на подписание сертификатов
Форматы ключей и сертификатов
Какие форматы ИОК используются для работы в Java
Настройка GlassFish
Установка и настройка сертификатов для шифрования данных между клиентом и сервером
В конце курса вы настроите SSL для шифрования данных
В любом крупном приложении используется сертификат SSL и протокол HTTPS, чтобы нельзя было перехватить чувствительные данные (логин, пароль и пр.).
Для этого создают специальный SSL сертификат и настраивают сервер+приложения на работу с ним. Вы научитесь создавать все необходимое по шагам, на примере сервера GlassFish (Payara). На других серверах будут похожие настройки, поэтому, если вы один раз поймете суть - сможете настраивать SSL на любом сервере.
Также, Spring Security обеспечивает удобный механизм настроек для приложения: использование HTTPS, настройка портов, закрытие страниц и пр. Вы настроите все, что нужно для вашего приложения и проверите его работу.