恢复从channel中存放token

This commit is contained in:
limeng
2023-07-06 21:04:59 +08:00
parent cc3a764aaf
commit f63a6974d7
2 changed files with 2 additions and 4 deletions

View File

@@ -19,12 +19,11 @@ public class HttpHeadersHandler extends ChannelInboundHandlerAdapter {
// 获取token参数
String token = urlBuilder.getQuery().get("token").toString();
//NettyUtil.setAttr(ctx.channel(), NettyUtil.TOKEN, token);
NettyUtil.setAttr(ctx.channel(), NettyUtil.TOKEN, token);
// 获取请求路径
request.setUri(urlBuilder.getPath().toString());
HttpHeaders headers = request.headers();
headers.set("token", token);
String ip = headers.get("X-Real-IP");
if (StringUtils.isEmpty(ip)) {//如果没经过nginx就直接获取远端地址
InetSocketAddress address = (InetSocketAddress) ctx.channel().remoteAddress();

View File

@@ -69,8 +69,7 @@ public class NettyWebSocketServerHandler extends SimpleChannelInboundHandler<Tex
}
} else if (evt instanceof WebSocketServerProtocolHandler.HandshakeComplete) {
this.webSocketService.connect(ctx.channel());
WebSocketServerProtocolHandler.HandshakeComplete handshakeComplete = (WebSocketServerProtocolHandler.HandshakeComplete)evt;
String token = handshakeComplete.requestHeaders().get("token");
String token = NettyUtil.getAttr(ctx.channel(), NettyUtil.TOKEN);
if (StrUtil.isNotBlank(token)) {
this.webSocketService.authorize(ctx.channel(), new WSAuthorize(token));
}