Files
IBKRTrader/tests/IBKRTrader.Tests/Web
RichardandClaude Opus 5 7b16474a33 Nachbesserungen am Web-UI: Optionsschluessel, Erreichbarkeit, Vorgaben
Vier Punkte aus der Durchsicht von f923721. Alles Uebrige traegt: Anmeldung
greift (unangemeldet 401 auf jedem /api-Pfad ausser status und login), alle
zwanzig Endpunkte antworten, SSE laeuft, die Oberflaeche zeigt echte Zahlen,
die Daemon-Schalter funktionieren weiter, und die Modul-Routen sitzen richtig
im Hosting-Projekt statt im Core.

1. Die Endpunkte /positions/lock und /positions/reassign deuteten den
   Instrumentenschluessel mit InstrumentRef.ForStock als Ticker. Bei einer Aktie
   ging das zufaellig gut - die Waehrung fiel still auf USD, der Schluessel kam
   trotzdem richtig heraus. Bei einem Optionskontrakt warf Normalize wegen des
   Trennzeichens "|" eine Ausnahme: HTTP 500 ohne Text, auf der Testmaschine
   reproduziert. Jetzt InstrumentRef.TryParse, und ein unlesbarer Schluessel
   ebenso wie ein unsinniger Buchname ergibt eine Antwort statt eines Absturzes.

2. OrderManager las UseTwsApi als Erreichbarkeitsnachweis. Das ist eine
   Einstellung, kein Zustand - sie steht auch dann auf true, wenn TWS nicht
   laeuft. Die Ansicht haette waehrend jeder Stoerung "Broker erreichbar, keine
   offenen Orders" gemeldet und jede Bindung als grundlos dargestellt. Genau
   davor warnt die Beschreibung an IBrokerOrderBook.GetOpenOrdersAsync.

3. AllowRemoteAccess stand als Vorgabe auf true: erster Start heisst 0.0.0.0,
   Klartext-HTTP, und der AuthToken ist anfangs leer. Ausnutzbar war das nicht
   (ohne Token faellt die Anmeldung zu, alles antwortet 401), aber die Vorgabe
   zeigte in die falsche Richtung. Jetzt lokal, mit Begruendung im Text.

4. Das Sitzungstoken stand im Query-String des SSE-Stroms. Unnoetig: EventSource
   schickt das HttpOnly-Cookie bei gleichem Ursprung von selbst. Die Oberflaeche
   nutzt den Weg nicht mehr, und AuthService nimmt ihn nur noch fuer
   /api/logs/stream an - ein Query-String landet in Logs, Verlauf und Referer.

Geminis Test auf den Query-Token bestand auf dem alten, breiten Verhalten. Er
ist durch zwei ersetzt, die die enge Regel in beide Richtungen festhalten.

499 Tests gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 20:17:02 +02:00
..