Ich starte eine Spring-Boot-App und beginne gerade, Hystrix von spring-cloud-netflix zu integrieren. Ich verwende @HystrixCommand, um einen Service-to-Service-Anruf mit einem falschen Client zu umbrechen.Stellt Spring den SecurityContext für den Thread zur Verfügung, der einen Hystrix-Befehl ausführt
Dieser Schein-Client verwendet den Spring-Sicherheitskontext, um Sicherheitsanforderungen zu der Anforderung hinzuzufügen.
Das Problem, das ich habe, ist, dass, wenn der HystrixCommand ausgeführt wird, es in einem separaten Thread von einem Hystrix-Thread-Pool ausgeführt wird und wenn mein Code versucht, auf den Spring-Sicherheitskontext zuzugreifen, ist es nicht auf dem neuen Thread verfügbar.
ich den Zugriff auf den Frühling Sicherheitskontext wie folgt aus:
SecurityContextHolder.getContext().getAuthentication();
Meine Frage ist, ob Frühling bieten eine Möglichkeit, die Federsicherheitskontext (und den Anwendungskontext) zu den Hystrix Fäden vorbei, die ausgeführt werden die Hystrix-Befehle?
Dank Verwendung , das funktioniert, ABER wenn ich 'SEMAPHORE' vs.' THREAD' richtig verstehe, wäre die Stelle, an der ich Probleme habe, ideal für THREAD gewesen: ein Netzwerkanruf an eine Remote-Service, der in den besten Zeiten nicht sehr schnell ist, und zu oft völlig bombardiert. Ich denke also, meine beste Option ist, den Code ein wenig zu überarbeiten, um die Auth als Param zu übergeben? – demaniak