Вы можете отправить пользовательский заголовок в бэкэнд Web Socket при первоначальном рукопожатии WebSocket.
Вы можете установить его в следующем формате для запроса подтверждения клиента.
websocket.custom.header.<required-header-name>
Пример: если ожидаемый заголовок - X-JWT-Assertion, заголовок, который должен быть отправлен, -
websocket.custom.header.X-JWT-Assertion
Эта функция добавлена из API Manager v2.6.0
Вы не можете использовать здесь посреднические последовательности, так как остальная часть связи выполняется с помощью фреймов ws.
Добавление дополнительной информации.
Ниже приведен пример сетевого сокет-клиента, который можно использовать для связи с WS API, развернутым в API Manager. [1]
Заголовок авторизации устанавливается в Рукопожатии следующим образом.
final WebSocketClientHandler handler = new WebSocketClientHandler(
WebSocketClientHandshakerFactory.newHandshaker(
uri, WebSocketVersion.V13, null, false, new DefaultHttpHeaders()
.add("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f")));
Этот заголовок авторизации предназначен для аутентификации с помощью API Manager. Если вам нужно отправить собственный заголовок, вы можете добавить другой заголовок, изменив приведенный выше пример следующим образом.
DefaultHttpHeaders headers = new DefaultHttpHeaders();
headers.add("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f");
headers.add("websocket.custom.header.X-WS-UserName", "bob");
final WebSocketClientHandler handler = new WebSocketClientHandler(
WebSocketClientHandshakerFactory.newHandshaker(
uri, WebSocketVersion.V13, null, false, headers));
Этот заголовок будет отправлен на сервер как
.
X-WS-UserName : bob
[1] https://docs.wso2.com/download/attachments/57748790/sample-ws-client.zip?version=2&modificationDate=1484568275000&api=v2