api数据集token机制详解
支持版本此文仅给开发看
Version 1.3.1-beta2+
- 1.集成积木报表,调用api接口如果用到token需要自定义java类实现接口
JmReportTokenServiceI
,重写方法getToken()
@Component
public class JimuReportTokenService implements JmReportTokenServiceI {
@Override
public String getToken(HttpServletRequest request) {
return TokenUtils.getTokenByRequest(request);
}
//忽略其他代码
- 2.api请求默认会在header中传入
X-Access-Token
,其值取之于上述实现类的getToken()
方法的返回值。 - 3.当api数据集的报表预览时,在预览的地址后面拼接上
?token=xxxxx
, 那么会在该api请求的header中会传入token
,其值取之于上述拼接的参数值xxxxx
。
// 预览访问地址带token:
http://localhost:8080/jeecg-boot/jmreport/view/539299173307518976?token=123456
- 4.上述2传入token适用场景:header里设置的是
X-Access-Token
,如jeecg boot
;上述3是将请求地址后带的token作为header中的一个参数发送请求,header里设置的是token
,2和3可同时设置,互不干扰。若是不满足需求,用户可自定义请求头,需要重写方法customApiHeader
,此时2和3皆不生效。
@Component
public class JimuReportTokenService implements JmReportTokenServiceI {
@Override
public HttpHeaders customApiHeader() {
HttpHeaders header = new HttpHeaders();
header.add("custom-header1", "Please set a custom value 1");
header.add("custom-header2", "Please set a custom value 2");
return header;
}
}