恢复从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参数 // 获取token参数
String token = urlBuilder.getQuery().get("token").toString(); 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()); request.setUri(urlBuilder.getPath().toString());
HttpHeaders headers = request.headers(); HttpHeaders headers = request.headers();
headers.set("token", token);
String ip = headers.get("X-Real-IP"); String ip = headers.get("X-Real-IP");
if (StringUtils.isEmpty(ip)) {//如果没经过nginx就直接获取远端地址 if (StringUtils.isEmpty(ip)) {//如果没经过nginx就直接获取远端地址
InetSocketAddress address = (InetSocketAddress) ctx.channel().remoteAddress(); InetSocketAddress address = (InetSocketAddress) ctx.channel().remoteAddress();

View File

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