Commit d580d8f9ab40302e50831ef0ba99c2ae609e1bfb
1 parent
94bf24ad
fix: 积木报表 API 数据集解析时 token 未正确解析的问题
Showing
1 changed file
with
28 additions
and
0 deletions
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 |