ruoyi集成积木报表

1.父级pom

            
                org.jeecgframework.jimureport
                jimureport-spring-boot-starter
                1.5.2
            

2.在admin pom中引入

        
            org.jeecgframework.jimureport
            jimureport-spring-boot-starter
        

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.zy.common.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 {

    @Autowired
    private TokenService tokenService;

    /**
     * 通过请求获取Token
     * @param request
     * @return
     */
    @Override
    public String getToken(HttpServletRequest request) {
        return request.getHeader("token");
    }

    /**
     * 通过Token获取登录人用户名
     * @param token
     * @return
     */
    @Override
    public 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
     */
    @Override
    public Boolean verifyToken(String token) {
        LoginUser loginUser = tokenService.getLoginUser(token);
        if (null!=loginUser)
        {
            tokenService.verifyToken(loginUser);
            return true;
        }
        return false;
    }

}

注:getUsername方法,可以设置为当前用户id,在报表中是可以通过#{sysUserCode}参数获得

ruoyi集成积木报表_第1张图片

 

6.com.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.数据库执行脚本下载地址

https://github.com/jeecgboot/JimuReport/blob/master/db/jimureport.mysql5.7.create.sql

8.报表地址

http://127.0.0.1:8100/jmreport/list?token=xxx

你可能感兴趣的:(java,积木报表)