[HIGH] regenerate-token erzeugt install_url aus SERVER_URL statt VPN-Pfad — #189-Nachzügler (VPN-Node bricht) #191
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug (Nachzügler zu #189) — HIGH, blockiert VPN-Node-Re-Enrollment
regenerate_token(admin_router.py:649ff) baut dieinstall_urlaus dem globalenSERVER_URL(Zeile ~663):Das ignoriert die in #189 eingefuehrte Transport-Auswahl. Fuer einen VPN-Node wird so die Public-/Default-Adresse ausgegeben → der anschliessende Install-Abruf laeuft in den https-Pflicht-400er (#113 Phase 1) bzw. der Agent bekommt die falsche SERVER_URL und scheitert am Transport (real beobachtet bei ITD-PROX01:
connect_async failed ws://…+ Dauer-Retry).Fix
install_url-Erzeugung inregenerate_tokenmuss dieselbe Auswahllogik nutzen wie der/install-Endpoint (#189):node.vpn_transportTrue → Basis =node.vpn_server_urlsonstSERVER_URL_VPN(→ ws/http, TRUSTED_TRANSPORT=vpn im Script).SERVER_URL_PUBLIC(→ wss/https)./install-Pfad in eine gemeinsame Hilfsfunktion ziehen und an beiden Stellen (/installUNDregenerate-token) nutzen, damit sie nicht wieder auseinanderlaufen.Akzeptanz
regenerate-tokenfuer einen VPN-Node liefert eine ws/http-VPN-URL + im ScriptTRUSTED_TRANSPORT=vpn.regenerate-tokenfuer einen Public-Node liefert eine wss/https-URL./installundregenerate-tokennutzen dieselbe gemeinsame URL-Auswahl (keine Duplikat-Logik).Branch
fix/regenerate-token-vpn-urlUmgesetzt in
8c94521(aufmain).Gemeinsamer Helper
resolve_install_base(node)inserver/util/install_url.py: VPN-Node →vpn_server_urlbzw.SERVER_URL_VPN(ws/http, kein https-Zwang,TRUSTED_TRANSPORT); leer → 400 (kein stilles Public-Fallback). Sonst →SERVER_URL_PUBLIC(FallbackSERVER_URL) mit https-Zwang./install(main.py),regenerate_tokenundinstall_info(admin_router.py) nutzen jetzt denselben Helper;regenerate_tokenlöst die Basis VOR der Token-Rotation auf (400 verbrennt den alten Token nicht).Akzeptanz verifiziert (Container-Test): public →
https://theprox.itdata-gera.de; VPN(global/override) →http://172.16.1.14:8765+ trusted; VPN ohne Adresse → 400./install-Verhalten unverändert (reiner Refactor).Hinweis: inhaltsgleich zum (versehentlich separat angelegten) #193. Lasse dieses Issue offen — bitte als Dup zu #193 schließen oder umgekehrt.
Teil-Verifikation:
regenerate_token(admin_router.py:686-720) nutzt bereitsresolve_install_base(node)(Z.692/704/720) → der Kern-Bug (VPN-URL bei Re-Enroll) ist behoben ✓.Rest offen: Die Node-Anlage (create-node, admin_router.py:136) baut
install_urlweiter aus rohemSERVER_URLstatt aus dem Helper → ein VPN-Node bekommt direkt beim Anlegen eine falsche Install-URL.nodeist an der Stelle bereits vorhanden (inkl.vpn_transport) → einfach aufresolve_install_base(node)['http_base']umstellen, analog regenerate-token. Bleibt offen, bis das gefixt ist.#191-Rest umgesetzt in
621a9f3(aufmain).Letzte rohe
SERVER_URL-Stelle beseitigt:admin_router.create_nodebaut dieinstall_urljetzt viaresolve_install_base(node)["http_base"](gleicher Helper wie/install+regenerate-token).nodeist dort bereits angelegt + refreshed (hatvpn_transport).Akzeptanz: VPN-Node beim Anlegen → VPN-URL; public → Domain; VPN ohne Adresse → 400 (HTTPException aus dem Helper, kein stilles Fallback). Helper nicht dupliziert. /install + regenerate-token inhaltlich unverändert.
Bleibt offen wie gewünscht.
Verifiziert → erfüllt, wird geschlossen. create-node (admin_router.py:139-140) nutzt jetzt
resolve_install_base(node)['http_base']statt rohem SERVER_URL; VPN-Node ohne Adresse → HTTPException(400), kein stilles Fallback. regenerate-token nutzte den Helper bereits. Damit liefern /install, regenerate-token und create-node konsistent die transport-korrekte URL.