Quarkus-Websockets: Sec-Webet-Protokoll-Subproteokollverhandlung scheint gebrochen zu seinJava

Java-Forum
Anonymous
 Quarkus-Websockets: Sec-Webet-Protokoll-Subproteokollverhandlung scheint gebrochen zu sein

Post by Anonymous »

Bei Verwendung von quarkus-webockets-next können Sie unterstützte Subprotokolle konfigurieren und Quarkus den SEC-Websocket-Protocol Header des Clients über:
">"> ">"> ">"> ">"> "> verbreiten"> ">

Code: Select all

quarkus:
websockets-next:
server:
supported-subprotocols:
- token-carrier
- bearer-token-carrier
propagate-subprotocol-headers: true
< /code>
Wir können die Anforderung über JavaScript stellen und es funktioniert: < /p>
const upgradeProto = encodeURIComponent(`quarkus-http-upgrade#Authorization#Bearer ${token}`);
const ws = new WebSocket(url, ["openepcis-token-carrier", upgradeProto]);
Da es einige noch offene Probleme im Zusammenhang mit Quarkus-Webockets-Next gibt Ich verwende die alten Quarkus-Webockets , um auf die Legacy Quarkus-Webockets (JSR-356)-Erweiterung, keine yamlos/application.ymloys existent for subprotocols oder bewegungspropagierungen zu wechseln. Alle Ihre Versuche führen zu einer automatischen Schließung des Websocket, wenn Sie das SEC-Websocket-Protokoll verwenden: < /p>

Code: Select all

WebSocket connection to 'ws://…' failed
CloseEvent { code: 1006, reason: "", wasClean: false }
< /code>
Im Folgenden finden Sie die Quarkus -Version, die ich verwende: < /p>

3.20.0

< /code>
Im Folgenden ist meine Implementierung: < /p>
@ServerEndpoint(
value        = "/queries/{queryName}/events",
configurator = QueriesWebSocketConfigurator.class,
subprotocols = {
"token-carrier",
"quarkus-http-upgrade"
}
)
@ApplicationScoped
public class QueriesWebSocket { … }
< /code>
Im Folgenden finden Sie die JavaScript -Client -Anforderung: < /p>
const token = "";
const upgradeProto = encodeURIComponent(
`quarkus-http-upgrade#Authorization#Bearer ${token}`
);
//const upgradeProto = encodeURIComponent( `Authorization#Bearer ${token}` );
const ws = new WebSocket(
"ws://localhost:8080/queries/TestQuery/events?stream=true",
["token-carrier", upgradeProto]
);
< /code>
Ich habe viele Dinge ausprobiert, aber immer noch nicht in der Lage, es zum Laufen zu bringen. Ich kann eine Verbindung herstellen, indem ich das Token als Abfrageparameter übergeben kann: WSURL + "& Access_Token" + Token 
, aber ich möchte die SEC-Websocket-Protocol verwenden. Ich kann aus der Registerkarte Browser Network sehen, dass die gesendete Anforderung das SEC-Websocket-Protokoll enthält: mit dem richtigen Token, aber aus irgendeinem Grund scheint der Server ihn abzulehnen. Referenzen: < /p>

Quarkus Websockets < /li>
Problem mit sec-Websocket-Protokoll fixieren. Etwas hier?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post