Helius
2021-11-26 4017fe347792c7e28695c455a40874f0c647cc9b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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<String, Object> attributes) throws Exception {
        String query = request.getURI().getQuery();
        if (StrUtil.isBlank(query)) {
            return false;
        }
 
        HashMap<String, String> paramMap = (HashMap<String, String>) HttpUtil.decodeParamMap(query, Charset.defaultCharset());
        String token = paramMap.get("token");
        if (StrUtil.isBlank(token)) {
            return false;
        }
 
        attributes.put("token", token);
        return true;
    }
}