online图表支持配置api地址获取数据,访问jeecg的接口,内置了token的设置,但是如果访问其他系统的接口,对于api接口鉴权需要重写鉴权方法。 鉴权接口`IReportApiAuth`方法介绍: | 方法 | 返回值| 描述 | | --- | --- |--- | | getToken | String | 获取token,如果调用其他系统接口,**需要用户自定义**http请求获取token | | isCache | boolean | 是否缓存token | | cacheToken | void| 如果isCache为true 则缓存token,**需要用户重写**此方法 | | setHeadersToken| void| 设置token到api请求的header中,**需要用户重写** | 在online模块,已经预置了一个接口实现类 `ReportApiAuthService ` `用户如需要自定义,可以extends该类或是implements IReportApiAuth ` ~~~ public class ReportApiAuthService implements IReportApiAuth { @Autowired private RedisUtil redisUtil; @Override public String getToken() { // JEECG中通过request获取token HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); return TokenUtils.getTokenByRequest(request); } @Override public void cacheToken(String token) { //此处缓存jeecg中使用的是redis 用户可根据自己项目制定缓存方法 redisUtil.set(TOKEN_KEY, token, 1800); } @Override public void setHeadersToken(HttpHeaders headers) { String token = null; Object redisContent = redisUtil.get(TOKEN_KEY); if(redisContent == null){ token = getToken(); }else{ token = redisContent.toString(); if(isCache()){ cacheToken(token); } } // 设置请求header,传递token, 这里的X-Access-Token需要用户自己定义 headers.set("X-Access-Token", token); } @Override public boolean isCache() { return true; } ~~~