提供一種在網關中鑒權websocket的方式
利用子協定Sec-WebSocket-Protocol的資訊
var aWebSocket = new WebSocket(url [, protocols]);
傳入鑒權資訊,在網關中攔截驗證後,改寫protocols内容,轉化為預先定義好的子協定,注意子協定必須一緻才能連接配接。貼上部分代碼作參考:
String header = request.getHeaders().getFirst("Sec-WebSocket-Protocol");
MultiValueMap<String, String> params = request.getQueryParams();
request = request.mutate().header(header, params.getFirst("Authorization")).build();
@ServerEndpoint(value = "/test", subprotocols = { "Authorization" }, encoders = {
WebSocketEn.class }, decoders = { WebSocketDe.class })