- Java 17, Spring(Boot,Security,Data).
- JWT.
- PostgreSQL.
- Mapstruct.
- Валидация входящих данных.
- Кодировка Bcrypt пароля пользователя.
- Security настроен через Config и частично через аннотацию @PreAuthorize(то есть как на уровне URL так и на уровне методов(PreAuthorize)).
- Аутентификация с помощью JWT.
- Авторизация - 2 роли USER и ADMIN.
- Локально поднять приложение, поднять БД postgres(см application.properties).
- С помощью Postman или аналогов отправить POST запрос на http://localhost:8080/auth/registration с RequestBody(JSON) следующего содержания:
{ "username": "Test", "yearOfBirth": 2000, "password": "Test" } - Ответом на вышеуказанны запрос будет JWT, который нужно добавить в загаловок Authorization в GET запрос по адресу http://localhost:8080/hello или http://localhost:8080/hello/showUser
- Вы аутентифицированны и авторизированны!
Чтобы протестировать авторизацию - необходимо вручную изменить запись в бд, поменяв роль на ROLE_ADMIN в колонке role для любого из зарегистированных вами пользователей(по умолчанию пользователь имеет ROLE_USER). Это позволит вам получить response по GET запросу http://localhost:8080/hello/admin, куда закрыт доступ для USERs.
Чтобы обновить токен, необходимо отправить POST запрос по адресу http://localhost:8080/auth/login с RequestBody(JSON) следующего содержания:
{ "username": "Test", "password": "Test" }