Spring Boot Security с JWT и ролевой авторизацией
Описание проекта
Этот проект демонстрирует реализацию безопасности в Spring Boot приложении с использованием Spring Security, JWT (JSON Web Tokens), Refresh Token и ролевой авторизации.
Ключевые особенности
- Spring Security: Обеспечивает аутентификацию и авторизацию
- JWT (JSON Web Tokens): Используется для безопасной передачи информации между клиентом и сервером
- Refresh Token: Позволяет обновлять JWT без повторной аутентификации
- Ролевая авторизация: Разграничение доступа на основе ролей пользователей (например, пользователь, админ)
Архитектура
- Фильтр авторизации: Проверяет и валидирует токены клиентов
- Контроллер аутентификации: Управляет логином, регистрацией и другими API аутентификации
- Контроллеры пользователя/админа: Обрабатывают API-запросы, связанные с пользователями или администраторами
API Endpoints
/register: Регистрация нового пользователя
/login: Аутентификация пользователя и получение JWT
/refresh: Обновление JWT с использованием Refresh Token
/admin: Защищенный endpoint, доступный только для администраторов
/user: Защищенный endpoint, доступный только для обычных пользователей
Процесс аутентификации
- Пользователь отправляет учетные данные
- Сервер проверяет учетные данные и генерирует JWT и Refresh Token
- Клиент использует JWT для доступа к защищенным ресурсам
- При истечении срока действия JWT, клиент использует Refresh Token для получения нового JWT
Безопасность
- Используется ролевая модель доступа
- JWT защищает API от несанкционированного доступа
- Refresh Token минимизирует необходимость повторной аутентификации
Тестирование
Проект можно протестировать с помощью Postman или любого другого HTTP-клиента, отправляя запросы к соответствующим endpoints.
Шаг 2 п.1