springsecurity-jwt
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
2 года назад
README.md
Реализация аутентификации и авторизации с использованием Spring Security и JWT
Выполнено как задание в открытой школе T1:
Создать базовое веб-приложение с использованием Spring Security и JWT для аутентификации и авторизации пользователей.
Запуск
- Клонировать проект
- Скомпилировать
- Запустить docker контейнеры
- Все java приложения будут запущены в своих контейнерах
Детали реализации
Проект написан для Java 17. Использует Postgresql 16 и spring web и spring security
При регистрации и аутентификации получаем jwt access token и refresh token. Используя refresh token можно обновить access token по его истечению.
- Реализованы эендпоинты для регистрации, аутентификации пользователей и обновлению access token через передачу refresh token. В файле api-docs.yaml содержится OpenApi спецификация реализованного API.
- Реализованы открытый, закрытый аутентификацией и закрытый ролью admin тестовые эндпоинты
Тесты postman
В файле postman.json приложена простая коллекция для тестов:
- В папке Manual лежат запросы ко всем используемым эндпоинтам для ручной проверки, где можно вручную создавать и передавать jwt токены
- В папке Tests простые тесты с проводящие регистрацию, вход под тестовым пользователем и админом и проверка защищенных эндпоинтов
Полная задача
Задание:
Реализация аутентификации и авторизации с использованием Spring Security и JWT
Цель задания:
Создать базовое веб-приложение с использованием Spring Security и JWT для аутентификации и авторизации пользователей.
Шаги задания:
Настройка проекта:
Создайте новый проект Spring Boot.
Настройка конфигурации безопасности:
Настройте базовую конфигурацию Spring Security для вашего приложения.
Используйте JWT для аутентификации пользователей.
Создайте класс для генерации и проверки JWT токенов.
Реализация контроллеров:
Создайте контроллеры для аутентификации и регистрации пользователей.
Реализуйте методы для создания нового пользователя и генерации JWT токена при успешной аутентификации.
Реализуйте сохранение пользователей в базу данных PostgreSQL.
Добавьте поддержку ролей пользователей и настройте авторизацию на основе ролей.
Тестирование:
Напишите модульные тесты для контроллеров и сервисов.
Убедитесь, что аутентификация и авторизация работают корректно.
Проверьте, что только аутентифицированные пользователи имеют доступ к защищенным ресурсам.