Ich verwende Spring 4s RestTemplate mit Jakptas HttpComponents 4.3, um einen Client für einen Remote-Webdienst zu implementieren. Der Client verwendet Basic Auth über eine gesicherte Verbindung. Alles lief großartig, aber jetzt werden wir in einen Modus upgraden, in dem der Benutzername für die Verbindung abhängig vom Inhalt der Anfrage variiert.RESTful-Dienstclient mit datengesteuerten Anmeldeinformationen funktioniert nicht
Bis jetzt scheint PoolingHttpClientConnectionManager Anmeldeinformationen zu ignorieren, wenn festgestellt wird, ob eine bestehende Verbindung für eine neue Verbindungsanforderung gültig ist - sie schaut ausschließlich auf die Route. Der erste Aufruf des Remote-Dienstes funktioniert also gut. Der zweite Aufruf kommt mit "ungültigen Anmeldeinformationen" zurück. Die Untersuchung der Protokolle zeigt, dass beide Aufrufe identische Authentifizierungs-Header verwenden.
Haben Sie Vorschläge, wie Sie damit umgehen sollen? Ich hatte gehofft, dass PoolingHttpClientConnectionManager benannte Pools unterstützen würde und effektiv erlauben würde, den Benutzernamen als Pool-Name zu verwenden. Das scheint nicht der Fall zu sein. Ich habe versucht, mehrere PoolingHttpClientConnectionManager-Objekte zu verwenden, aber der tatsächliche Pool der Verbindungen ist freigegeben.