积木报表"/>
ruoyi集成积木报表
1.父级pom
<dependency><groupId>org.jeecgframework.jimureport</groupId><artifactId>jimureport-spring-boot-starter</artifactId><version>1.5.2</version></dependency>
2.在admin pom中引入
<dependency><groupId>org.jeecgframework.jimureport</groupId><artifactId>jimureport-spring-boot-starter</artifactId></dependency>
3.application启动类上添加:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, MongoAutoConfiguration.class },scanBasePackages = {"org.jeecg.modules.jmreport","com.zy"})
4.在SecurityConfig.java中添加允许匿名访问路径
"/jmreport/**"
5.在admin模块下创建权限控制类JimuReportTokenService
package com.zy.web.config;import com.zymon.core.domain.model.LoginUser;
import com.zy.framework.web.service.TokenService;
import org.jeecg.modules.jmreport.api.JmReportTokenServiceI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;/*** 自定义积木报表鉴权(如果不进行自定义,则所有请求不做权限控制)* 1.自定义获取登录token* 2.自定义获取登录用户*/
@Component
public class JimuReportTokenService implements JmReportTokenServiceI {@Autowiredprivate TokenService tokenService;/*** 通过请求获取Token* @param request* @return*/@Overridepublic String getToken(HttpServletRequest request) {return request.getHeader("token");}/*** 通过Token获取登录人用户名* @param token* @return*/@Overridepublic String getUsername(String token) {LoginUser loginUser = tokenService.getLoginUser(token);if (null!=loginUser){tokenService.verifyToken(loginUser);}return null==loginUser?"anonymous":loginUser.getUsername();}/*** Token校验* @param token* @return*/@Overridepublic Boolean verifyToken(String token) {LoginUser loginUser = tokenService.getLoginUser(token);if (null!=loginUser){tokenService.verifyToken(loginUser);return true;}return false;}}
注:getUsername方法,可以设置为当前用户id,在报表中是可以通过#{sysUserCode}参数获得
6.zy.framework.web.service.TokenService新增重载以下方法
/*** 获取用户身份信息** @return 用户信息*/public LoginUser getLoginUser(String token){// 获取请求携带的令牌if (StringUtils.isNotEmpty(token)){try{Claims claims = parseToken(token);// 解析对应的权限以及用户信息String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);String userKey = getTokenKey(uuid);LoginUser user = redisCache.getCacheObject(userKey);return user;}catch (Exception e){}}return null;}
7.数据库执行脚本下载地址
.mysql5.7.create.sql
8.报表地址
http://127.0.0.1:8100/jmreport/list?token=xxx
更多推荐
ruoyi集成积木报表
发布评论