package com.xcong.excoin.websocket.handler; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpResponse; import org.springframework.stereotype.Component; import org.springframework.web.socket.WebSocketHandler; import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor; import java.nio.charset.Charset; import java.util.HashMap; import java.util.Map; /** * @author wzy * @date 2021-11-26 **/ @Slf4j @Component public class FishHitWebSocketHandshakeInterceptor extends HttpSessionHandshakeInterceptor { @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map attributes) throws Exception { String query = request.getURI().getQuery(); if (StrUtil.isBlank(query)) { return false; } HashMap paramMap = (HashMap) HttpUtil.decodeParamMap(query, Charset.defaultCharset()); String token = paramMap.get("token"); if (StrUtil.isBlank(token)) { return false; } attributes.put("token", token); return true; } }