Добавить опциональную авторизацию клиента и динамические лимиты трафика

Сервер получает флаги --require-auth/--backend-url (по умолчанию выключено,
поведение уже развёрнутых нод не меняется). Auth-кадр хендшейка расширен с
"session_id:leg_id" до "session_id:leg_id:token"; при включённом
--require-auth сервер валидирует токен через новый AuthValidator
(BackendClient к netrunner-backend, с кешем на 60с).

Muxer теперь ведёт монотонный учёт трафика сессии (переживает реконнект
ног — раньше total_bytes мог занижаться после переподключения) и раз в ~30с
отчитывается бэкенду; при превышении лимита сессия разрывается. Токен
клиента прокидывается через EngineConfig/TunnelConfig до Tauri-плагина
(desktop.rs + Android Kotlin-плагин).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 00:31:03 +07:00
parent 99a9eee908
commit 40ddb0a0f6
14 changed files with 440 additions and 25 deletions
+9 -4
View File
@@ -194,10 +194,15 @@ async fn run_virtual_user(
let started = Instant::now();
let muxer =
match ClientHandler::connect(&server_addr, "example.com", rx_from_engine, tx_to_engine)
.await
{
let muxer = match ClientHandler::connect(
&server_addr,
"example.com",
None,
rx_from_engine,
tx_to_engine,
)
.await
{
Ok(m) => m,
Err(_) => {
stats.handshake_failures.fetch_add(1, Relaxed);