yangys
2025-11-20 537d302507bf5bdc6f6b81ece701abb6e8b6a1e1
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.qianwen.smartman.common.config;
 
import io.jsonwebtoken.Claims;
import java.util.Objects;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import org.jeecg.modules.jmreport.api.JmReportTokenServiceI;
import org.jeecg.modules.jmreport.common.b.f;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.qianwen.core.jwt.JwtUtil;
import com.qianwen.core.tool.jackson.JsonUtil;
import com.qianwen.core.tool.utils.Func;
import com.qianwen.core.tool.utils.WebUtil;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
 
@Configuration
public class JmConfiguration implements JmReportTokenServiceI {
    private static final String HEADER = "Blade-Auth";
    private static final Logger log = LoggerFactory.getLogger(JmConfiguration.class);
    public static final String COOKIE_TOKEN_NAME = "saber-access-token";
 
    public String getUsername(String s) {
        String token = getCookieToken(COOKIE_TOKEN_NAME, f.getHttpServletRequest());
        String auth = JwtUtil.getToken(token);
        Claims claims = JwtUtil.parseJWT(auth);
        return Func.toStr(claims.get("user_name"));
    }
 
    public Boolean verifyToken(String s) {
        String token = getCookieToken(COOKIE_TOKEN_NAME, f.getHttpServletRequest());
        String auth = JwtUtil.getToken(token);
        return Boolean.valueOf(!Objects.isNull(JwtUtil.parseJWT(auth)));
    }
 
    public HttpHeaders customApiHeader() {
        String token = getCookieToken(COOKIE_TOKEN_NAME, f.getHttpServletRequest());
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.add(HEADER, token);
        return httpHeaders;
    }
 
    public static String getCookieToken(String key, HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
        if (cookies == null) {
            log.warn("积木报表调取失败,token不存在,请求接口:{},请求IP:{},请求参数:{}", new Object[]{request.getRequestURI(), WebUtil.getIP(request), JsonUtil.toJson(request.getParameterMap())});
            return "";
        }
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals(key)) {
                return cookie.getValue();
            }
        }
        return "";
    }
}