[0.6.5] - 2025-09-21
Some checks failed
Deploy on push / deploy (push) Failing after 5s

### 🔐 Улучшенная аутентификация для микросервисов

####  Новые возможности
- **Универсальная аутентификация**: Добавлена функция `authenticate_request()` для всех handlers
- **Множественные источники токенов**: Поддержка Bearer, X-Session-Token, Cookie
- **Redis сессии**: Интеграция с Redis для проверки активных сессий
- **Безопасная валидация**: Функция `secure_token_validation()` с проверкой TTL и обновлением активности
- **Извлечение токенов**: Универсальная функция `extract_token_from_request()` для всех типов запросов

#### 🧪 Тестирование
- **14 новых тестов**: Полное покрытие новой логики аутентификации
- **Производительность**: Тесты производительности (< 1ms на операцию)
- **Безопасность**: Тесты защиты от подозрительных токенов
- **Граничные случаи**: Тестирование истекших токенов, неверных форматов
- **Интеграция**: Тесты с мокированным Redis

#### ♻️ Рефакторинг (DRY & YAGNI)
- **Устранение дублирования**: Объединена логика аутентификации из upload.rs и user.rs
- **Удаление устаревшего кода**: Убраны `extract_user_id_from_token`, `validate_token`, `get_user_by_token`
- **Очистка констант**: Удалены неиспользуемые `MAX_TOKEN_LENGTH`, `MIN_TOKEN_LENGTH`
- **Упрощение**: Заменена `extract_and_validate_token` на `authenticate_request`

#### ��️ Архитектурные улучшения
- **Библиотечная цель**: Добавлена `lib.rs` для тестирования модулей
- **Модульность**: Четкое разделение ответственности между модулями
- **Единообразие**: Все handlers теперь используют одинаковую логику аутентификации

#### 📋 Совместимость
- **Обратная совместимость**: Все существующие API endpoints работают без изменений
- **Graceful fallback**: Работа без Redis (JWT-only режим)
- **Множественные форматы**: Поддержка различных способов передачи токенов
This commit is contained in:
2025-09-22 01:15:35 +03:00
parent ae0fc9a18d
commit 91e5f5dac4
13 changed files with 773 additions and 355 deletions

14
src/lib.rs Normal file
View File

@@ -0,0 +1,14 @@
// Библиотечная цель для quoter
// Экспортируем модули для тестирования
pub mod app_state;
pub mod auth;
pub mod handlers;
pub mod lookup;
pub mod s3_utils;
pub mod security;
pub mod thumbnail;
// Реэкспортируем основные типы для удобства
pub use app_state::AppState;
pub use auth::{Author, authenticate_request, extract_token_from_request, secure_token_validation};