大屏监控 Metabase 集成到 Java 项目

沙海 2021年3月16日04:25:10杂谈 Java评论120字数 2360阅读7分52秒阅读模式
摘要

大屏监控 Metabase 集成到 Java 项目 戳一戳→ 程序员的成长之路

大屏监控 Metabase 集成到 Java 项目

戳一戳→ 程序员的成长之路 文章源自JAVA秀-https://www.javaxiu.com/4566.html

大屏监控 Metabase 集成到 Java 项目文章源自JAVA秀-https://www.javaxiu.com/4566.html

程序员的成长之路文章源自JAVA秀-https://www.javaxiu.com/4566.html

互联网/程序员/技术/资料共享 文章源自JAVA秀-https://www.javaxiu.com/4566.html

关注文章源自JAVA秀-https://www.javaxiu.com/4566.html

阅读本文大概需要 2 分钟。文章源自JAVA秀-https://www.javaxiu.com/4566.html

来自:网络文章源自JAVA秀-https://www.javaxiu.com/4566.html

前言文章源自JAVA秀-https://www.javaxiu.com/4566.html

概述:Metabase可以帮助你把数据库中的数据更好的呈现给更多人,数据分析人员通过建立一个”查询“(Metabase中定义为Question)来提炼数据,再通过仪表盘(Dashboards)来组合展示给公司成员文章源自JAVA秀-https://www.javaxiu.com/4566.html

分享

支持公开链接、公开嵌入、应用嵌入三种方式,前两种方式由于其公开性,只能分享一些见得人的数据,如果一些见不得人的数据就要通过第三种方式实现了。文章源自JAVA秀-https://www.javaxiu.com/4566.html

这玩意官方案例支持 Python、Node、Ruby、Clojure,但就是不支持 Java,撸主只要自己手撸了。文章源自JAVA秀-https://www.javaxiu.com/4566.html

集成

参考 Node.js 的集成方式:文章源自JAVA秀-https://www.javaxiu.com/4566.html

// you will need to install via 'npm install jsonwebtoken' or in your package.jsonvar jwt = require("jsonwebtoken");var METABASE_SITE_URL = "http://127.0.0.1:3000";var METABASE_SECRET_KEY = "76e7feb6e9456f9f924a9f463d03cbcaedf72b4a68844fa88e5f05c6345d409d";var payload = {resource: { dashboard: 2 },params: {},exp: Math.round(Date.now() / 1000) + (10 * 60) // 10 minute expiration};var token = jwt.sign(payload, METABASE_SECRET_KEY);var iframeUrl = METABASE_SITE_URL + "/embed/dashboard/" + token + "#bordered=true&titled=true";

其实就是根据秘钥生成一个 Token,然后拼接到访问链接,后台再对其进行验证,如果 Token 有效则认证通过。文章源自JAVA秀-https://www.javaxiu.com/4566.html

仿照撸一个Java版本:文章源自JAVA秀-https://www.javaxiu.com/4566.html

import com.alibaba.fastjson.JSONObject;import io.jsonwebtoken.Jwts;import io.jsonwebtoken.SignatureAlgorithm;import java.util.Base64;import java.util.Date;import java.util.Map;/** * 报表生成加密URL */public classJWTUtils{/** * 创建token */ public staticString createJWT(Map<String, Object> payload, String secretKey){try {String metaBaseEncodedSecretKey = Base64.getEncoder().encodeToString(secretKey.getBytes());return Jwts.builder() .setHeaderParam("typ", "JWT") .setClaims(payload) .signWith(SignatureAlgorithm.HS256, metaBaseEncodedSecretKey) .setIssuedAt(newDate()) .compact(); }catch (Exception e){ e.printStackTrace(); }returnnull; }/** * 创建token */ public staticString getTokenUrl(Integer dashboard,String secretKey){ int round = Math.round(System.currentTimeMillis() / 1000)+10*60; // 10 minute expiration JSONObject resource = new JSONObject(); resource.put("dashboard",dashboard); JSONObject payload = new JSONObject(); payload.put("resource",resource); payload.put("params",new JSONObject()); payload.put("exp",round);String token = JWTUtils.createJWT(payload,secretKey);return BI_SITE_URL + "/embed/dashboard/" + token + "#theme=night&bordered=false&titled=false"; } private static final String BI_SITE_URL = "http://127.0.0.1:3000"; public staticvoid main(String[] args) {String secretKey = "******";String url = getTokenUrl(2,secretKey); System.out.println(url); }}

预览

大屏监控 Metabase 集成到 Java 项目文章源自JAVA秀-https://www.javaxiu.com/4566.html

小结

安全认证之后的地址就可以分享出去了,后台可以对链接失效时间以及用户数据权限做验证,这样数据就只能让那些见不得人的看了。文章源自JAVA秀-https://www.javaxiu.com/4566.html

<END>文章源自JAVA秀-https://www.javaxiu.com/4566.html

扫码加入技术交流群文章源自JAVA秀-https://www.javaxiu.com/4566.html

大屏监控 Metabase 集成到 Java 项目文章源自JAVA秀-https://www.javaxiu.com/4566.html

推荐阅读:文章源自JAVA秀-https://www.javaxiu.com/4566.html

MySQL与Redis缓存的同步方案文章源自JAVA秀-https://www.javaxiu.com/4566.html

19 个接私活平台汇总升级版,你有技术就有钱文章源自JAVA秀-https://www.javaxiu.com/4566.html

5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「2048」,即可免费获取!!文章源自JAVA秀-https://www.javaxiu.com/4566.html

大屏监控 Metabase 集成到 Java 项目文章源自JAVA秀-https://www.javaxiu.com/4566.html

微信扫描二维码,关注我的公众号文章源自JAVA秀-https://www.javaxiu.com/4566.html

朕已阅 大屏监控 Metabase 集成到 Java 项目文章源自JAVA秀-https://www.javaxiu.com/4566.html

继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定