spring cloud gateway中对websocket进行鉴权

本文介绍了如何在网关中通过子协议Sec-WebSocket-Protocol进行WebSocket连接的鉴权,包括如何获取请求头信息、设置授权参数,并在ServerEndpoint中指定预设的子协议。通过实例代码演示了这一过程。
摘要由CSDN通过智能技术生成

提供一种在网关中鉴权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 })
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值