Ich verwende einen Jersey-Client, um eine Verbindung zu einem SSE-Stream herzustellen. Der Server erfordert, dass ich der HTTP-Anfrage eine Kopfzeile für die Autorisierung hinzufüge, aber ich kann nicht herausfinden, wie man die Kopfzeile hinzufügt.
Hier ist mein Code:
%Vor%Hier ist ein Beispiel für den Header, den ich hinzufügen muss:
%Vor% Falls jemand den Bearer-Token-Header auf der Entity-Ebene Client
selbst hinzufügen möchte, anstatt auf der Entity-Ebene Request
(in meinem Fall hatte ich eine Factory-Methode zum Zurückgeben vorkonfigurierter Client
-Entitäten) Ich hatte keine Möglichkeit, den Autorisierungsheader innerhalb der Factory-Methode hinzuzufügen, da .header(...)
erst verfügbar wird, nachdem Sie die% c_de% -Kette durchlaufen haben (ab Jersey 2.x):
Leider (wie Sie vielleicht schon erraten haben) erfordert dies eine neue Abhängigkeit: ClientBuilder.newBuilder().register(...).build().target(...).request(...)
Mir ist klar, dass diese Frage ein Jahr alt ist, aber da zu diesem Thema nicht viel zu finden ist, teile ich meine Lösung.
Basierend auf dem vorgeschlagenen OAuth2Feature habe ich diese Lösung gefunden:
Header Provider-Schnittstelle
%Vor%Benutzerdefinierte Funktion
%Vor%Benutzerdefinierter Filter
%Vor%Verwendung
%Vor%Diese Lösung ist generisch und ermöglicht das einfache Hinzufügen eines Autorisierungsheaders, ohne dass eine weitere Abhängigkeit hinzugefügt werden muss.
Folgende Antwort ist nützlich: Server Gesendet Event Client mit zusätzlichem Cookie Es verwendet ein benutzerdefiniertes WebTarget zum Hinzufügen von Cookies und genauso funktioniert es auch auf Header.
%Vor%Nachfolgend ist der Code, um es zu verwenden:
%Vor%Wenn Sie einen Jercy-Client verwenden, der Header in websource
verwendet %Vor%Tags und Links java jersey authorization http-headers server-sent-events