1 回答
TA贡献1802条经验 获得超10个赞
您可以在初始 WebSocket 握手中将自定义标头发送到 Web Socket 后端。您可以按照以下格式将其设置为客户端握手请求。
websocket.custom.header.<required-header-name>
例如:如果预期的标头是 X-JWT-Assertion,则应发送的标头是
websocket.custom.header.X-JWT-Assertion
此功能支持是从 API Manager v2.6.0 添加的
您不能在此处使用中介序列,因为其余通信是使用 ws 框架完成的。
添加更多信息。
下面是一个基于 netty 的 Web 套接字客户端示例,可用于与部署在 API 管理器中的 WS API 进行通信。[1]
授权标头在 Handshake 中设置如下。
final WebSocketClientHandler handler = new WebSocketClientHandler(
WebSocketClientHandshakerFactory.newHandshaker(
uri, WebSocketVersion.V13, null, false, new DefaultHttpHeaders()
.add("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f")));
此 Authorization 标头用于通过 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
添加回答
举报