Commit d580d8f9ab40302e50831ef0ba99c2ae609e1bfb

Authored by gaibu
1 parent 94bf24ad

fix: 积木报表 API 数据集解析时 token 未正确解析的问题

yudao-module-visualization/yudao-module-visualization-biz/src/main/java/cn/iocoder/yudao/module/visualization/framework/jmreport/core/service/JmReportTokenServiceImpl.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.visualization.framework.jmreport.core.service; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.visualization.framework.jmreport.core.service;
3 import cn.hutool.core.util.ObjectUtil; 3 import cn.hutool.core.util.ObjectUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.yudao.framework.common.exception.ServiceException; 5 import cn.iocoder.yudao.framework.common.exception.ServiceException;
  6 +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
6 import cn.iocoder.yudao.framework.security.core.LoginUser; 7 import cn.iocoder.yudao.framework.security.core.LoginUser;
7 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 8 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
8 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; 9 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
@@ -11,7 +12,9 @@ import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; @@ -11,7 +12,9 @@ import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;
11 import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; 12 import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
12 import lombok.RequiredArgsConstructor; 13 import lombok.RequiredArgsConstructor;
13 import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; 14 import org.jeecg.modules.jmreport.api.JmReportTokenServiceI;
  15 +import org.springframework.http.HttpHeaders;
14 16
  17 +import javax.servlet.http.HttpServletRequest;
15 import java.util.Objects; 18 import java.util.Objects;
16 19
17 /** 20 /**
@@ -22,9 +25,34 @@ import java.util.Objects; @@ -22,9 +25,34 @@ import java.util.Objects;
22 @RequiredArgsConstructor 25 @RequiredArgsConstructor
23 public class JmReportTokenServiceImpl implements JmReportTokenServiceI { 26 public class JmReportTokenServiceImpl implements JmReportTokenServiceI {
24 27
  28 + private static final String JM_TOKEN_HEADER = "X-Access-Token";
  29 + /**
  30 + * 系统内置请求头
  31 + */
  32 + private static final String TOKEN_HEADER = "Authorization";
  33 + /**
  34 + * auth 相关格式
  35 + */
  36 + private static final String AUTHORIZATION_FORMAT = "Bearer %s";
  37 +
25 private final OAuth2TokenApi oauth2TokenApi; 38 private final OAuth2TokenApi oauth2TokenApi;
26 39
27 /** 40 /**
  41 + * 修改请求的 head
  42 + *
  43 + * @return 新 head
  44 + */
  45 + @Override
  46 + public HttpHeaders customApiHeader() {
  47 + HttpHeaders header = new HttpHeaders();
  48 + HttpServletRequest request = ServletUtils.getRequest();
  49 + String token = request.getHeader(JM_TOKEN_HEADER);
  50 +
  51 + header.add(TOKEN_HEADER, String.format(AUTHORIZATION_FORMAT, token));
  52 + return header;
  53 + }
  54 +
  55 + /**
28 * 校验 Token 是否有效,即验证通过 56 * 校验 Token 是否有效,即验证通过
29 * 57 *
30 * @param token JmReport 前端传递的 token 58 * @param token JmReport 前端传递的 token