若依集成积木就不说了官网有ruoyi vue版集成积木报表 · JimuReport 积木报表 · 看云 (jeecg.com)​​​​​​​

考虑到用若依的一般都是刚成立的公司,没有自己公司的框架,所以一般都是前后端都干,我这里前后端都搞上,让你们快速搞完摸鱼去,代码写的如果不好多担待。

如果这篇文章对你有帮助希望点个赞,这样我的分享才会有乐趣!谢谢大家!

接下来是积木进行token传递的集成过积木主要有两个接口需要进行token传递

第一次写博客不好之处的多担待

1. /jmreport/list  查看积木列表

2. /jmreport/view/* 查看积木报表详情

后端

主要是后端的

一、首先说第一个 /jmreport/list 接口,也就是下面这个页面

 

1.直接创建 JimuReportTokenService 实现 JmReportTokenServiceI接口就行了

2.实现

package com.ruoyi.framework.web.service;import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.TokenUtils;
import org.jeecg.modules.jmreport.api.JmReportTokenServiceI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;
import java.util.Map;/*** @author dzh* @version 1.0* @date 2022/7/26 11:06*/
@Component
public class JimuReportTokenService implements JmReportTokenServiceI {@AutowiredTokenService tokenService;@Overridepublic String getUsername(String token) {LoginUser loginUser = tokenService.getLoginUser(token);return loginUser.getUsername();}@Overridepublic Boolean verifyToken(String token) {LoginUser loginUser = tokenService.getLoginUser(token);if(StringUtils.isNotNull(loginUser)){tokenService.verifyToken(loginUser);return true;}return false;}@Overridepublic String getToken(HttpServletRequest request) {return TokenUtils.getTokenByRequest(request);}@Overridepublic Map<String, Object> getUserInfo(String token) {return null;}
}

3.TokenUtils

/*** @author dzh* @version 1.0* @date 2022/7/26 14:18*/
public class TokenUtils {/*** 获取 request 里传递的 token** @param request* @return*/public static String getTokenByRequest(HttpServletRequest request) {String parameter = request.getParameter("token");String header = request.getHeader("token");if (parameter == null && header == null) {parameter = request.getHeader("Authorization");}return parameter != null ? parameter : header;}
}

4. getLoginUser方法重载了一个

    /*** 获取用户身份信息** @return 用户信息*/public LoginUser getLoginUser(String token){if(StringUtils.isNull(token)){return null;}token = token.replace(Constants.TOKEN_PREFIX, "");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;}

4.这样子就可以了再次访问接口时如果不带token时就会报错

5.成功案例 /jmreport/list?token=#{token}

二 /jmreport/view/* 查看积木报表详情

这个需要做一个拦截器,监听/jmreport/view/*接口,必须携带token

1.定义拦截器

代码段

package com.ruoyi.framework.interceptor;import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.framework.web.service.TokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** @author dzh* @version 1.0* @date 2022/7/26 16:28*/
@Component
public class JimuInterceptor implements HandlerInterceptor {@Autowiredprivate TokenService tokenService;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {response.setContentType("text/html; charset=UTF-8");request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String token = request.getParameter("token");LoginUser loginUser = tokenService.getLoginUser(token);if (loginUser != null) {return true;}JSONObject jsonObject = new JSONObject();jsonObject.put("code", 200);jsonObject.put("msg", "参数错误或无权访问数据");response.getWriter().println(jsonObject);return false;}
}

2.进行接口拦截

完成,这样访问/jmreport/view 也需要token了

前端

接下来主要是前端的

我这里是放到菜单中了并没有另外开一个网页

1.搞一个菜单

2.代码段1

<template><i-frame :src="openUrl" />
</template><script>
import { getToken } from '@/utils/auth'
import { indexUrl } from '@/api/ruoyi/jimu/jimu'
import iFrame from "@/components/iFrame/index";export default {name: 'Jimu',components: { iFrame },data() {return {openUrl: ''}},created() {indexUrl().then(res => {this.openUrl = res + '?token=' + getToken()})}
}
</script><style scoped></style>

3.代码段2

import request from "@/utils/request";
// 首页
export function indexUrl() {return request({url: "/ruoyi/jimu/index",method: "get"});
}

4.后端代码段,其实就是返回积木列表的访问地址,获取当前服务器I拼接了一下

/*** @author dzh* @version 1.0* @date 2022/7/26 11:02*/
@RestController
@RequestMapping("/ruoyi/jimu")
public class JimuController {@AutowiredEnvironment environment;@GetMapping("/index")public String index(){String hostIp = IpUtils.getHostIp();String property = environment.getProperty("ruoyi.reportUrl");String format = String.format(property, hostIp);return format+"/jmreport/list";}
}

5.application.yml

完成,不管怎么访问都需要携带带token的,摸鱼去吧!

如果这篇文章对你有帮助希望点个赞,这样我的分享才会有乐趣!谢谢大家!

若依集成JimuReport积木报表进行token传递相关推荐

  1. JimuReport积木报表,一个好用的开源免费的报表平台!

    JimuReport积木报表是一款集成报表设计和大屏设计的在线报表平台,使用起来简单方便,可以帮助用户像excel一样设计页面. 使用积木报表平台,用户不仅10分钟就可以设计一个炫酷大屏,还能在平台快 ...

  2. JimuReport积木报表,一个好用的开源免费的报表平台

    JimuReport积木报表是一款集成报表设计和大屏设计的在线报表平台,使用起来简单方便,可以帮助用户像excel一样设计页面. 使用积木报表平台,用户不仅10分钟就可以设计一个炫酷大屏,还能在平台快 ...

  3. JimuReport积木报表打印多出一页空白页问题(解决方案)

    原文地址: JimuReport积木报表打印多出一页空白页问题 - BIGTREE (whwtree.com) 问题描述 积木报表预览或打印时,会多出一页空白页问题. 解决方案 总结如下: (1)方法 ...

  4. JimuReport积木报表1.3.3 版本发布,可视化报表工具

    项目介绍 积木报表,是一款免费的可视化Web报表工具,像搭建积木一样在线拖拽设计报表!功能涵盖,数据报表.打印设计.图表报表.大屏设计等! 秉承"简单.易用.专业"的产品理念,极大 ...

  5. JimuReport积木报表 v1.4.2版本发布,免费的可视化低代码报表

    项目介绍 积木报表,一款免费的可视化Web报表工具,像搭建积木一样在线拖拽设计!功能涵盖,数据报表.打印设计.图表报表.大屏设计等! 秉承"简单.易用.专业"的产品理念,极大的降低 ...

  6. 若依ruoyi框架集成第三方报表工具(集成jmreport积木报表)

    目录 1.集成jmreport工具 1.1.引入依赖 1.2.下载依赖SQL在自己的数据库执行 1.3.若依启动类中增加jmreport的扫描 1.4.若依鉴权机制中对jmrepot添加白名单,不做t ...

  7. JimuReport积木报表与JeecgBoot集成文档—开源免费的报表工具!

    积木报表 ,一个开源免费的报表工具,像搭建积木一样在线设计报表!功能涵盖数据报表设计.打印设计.图表设计.大屏设计等! 领先的企业级Web报表平台软件,采用纯Web在线技术,专注于解决企业报表快速制作 ...

  8. JimuReport积木报表1.1.09 版本发布,免费的企业级 Web 报表工具

    项目介绍 积木报表,是一款免费的企业级Web报表工具,像搭建积木一样在线设计报表!功能涵盖,数据报表.打印设计.图表报表.大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报表 ...

  9. JimuReport积木报表1.3.1 beta版本发布,免费的Web报表工具

    项目介绍 积木报表,是一款免费的企业级Web报表工具,像搭建积木一样在线拖拽设计报表!功能涵盖,数据报表.打印设计.图表报表.大屏设计等! 秉承"简单.易用.专业"的产品理念,极大 ...

最新文章

  1. keil c语言模块化编程,keil C模块化编程总结
  2. [云炬创业管理笔记]第五章打磨最有效的商业模式测试4
  3. js 数组修改watch_前端面试:专注Vue.js常见的问题答疑,掌握了基本上Vue就过关了...
  4. FastDFS的配置、部署与API使用解读(7)Nginx的FastDFS模块(转)
  5. 《网易编程题》计算糖果
  6. 使用Hibernate JPA的自定义布尔用户类型
  7. Java里面的几种路径的区别
  8. Chrome浏览器必装的扩展工具
  9. 《数据库系统概论》错题集
  10. 解决Navicat激活、注册时候出现No All Pattern Found的问题
  11. 数据分类分级产品,一文详解
  12. vnc全屏界面怎么设置小_如何设置 才能 修改 vnc 有效窗口大小
  13. 哈佛大学有没有计算机专业,美国哈佛大学计算机专业课程有哪些?
  14. 键盘连接计算机接口,终于明白电脑如何连接键盘
  15. 15个令iPhone用户嫉妒的Android widgets 桌面组件
  16. 和平精英小程序服务器开小差,1个BUG存在了4年 光子通过小提示说出了无法修复的原因...
  17. visual assistant x 破解版使用方法及下载地址
  18. 做短视频必须要知道的几个视频设置参数,爆款必备。
  19. js创建对象,构造函数,this,原型,继承
  20. FUD(恐惧,不确定性和怀疑)被揭穿...

热门文章

  1. S7-1200与HIKVISION相机TCP通讯
  2. Word表格复制粘贴后变蓝色背景的解决方法
  3. “未来之光:揭秘创新科技下的挂灯魅力“
  4. 东软实训心得:做事务的主宰者
  5. EOS启动超时解决方案
  6. linux jetty 查看 状态,linux jetty 状态
  7. 优酷路由宝 tf异常 解决办法
  8. 大牛博客:有关精通时间管理的最佳理念
  9. 无法更新运行时文件夹共享状态_这个系统不更新,你的iPad等于废了
  10. ubuntu下安装pig