java生成metabase内嵌代码

1,263 阅读1分钟

 

来在你的应用中插入这个dashboard

在你的服务器代码中插入这段代码来生成具有签名的嵌入URL链接

metabase里没有java的例子,找了半天才找到

discourse.metabase.com/t/embedding…

gist.github.com/epustobaev/…


package com.example.controllers.dashboard;

import org.springframework.security.jwt.Jwt;
import org.springframework.security.jwt.JwtHelper;
import org.springframework.security.jwt.crypto.sign.MacSigner;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = {"/dashboardUrl"})
public class DashboardController {
    private final String METABASE_SITE_URL = "http://somehost/metabaseUrl";
    private final String METABASE_SECRET_KEY = "SOME_SECRET_KEY";


    @GetMapping("")
    public DashboardParams indexAction() {
        Jwt token = JwtHelper.encode("{\"resource\": {\"dashboard\": 1}, \"params\": {}}", new MacSigner(METABASE_SECRET_KEY));
        String url = METABASE_SITE_URL + "/embed/dashboard/" + token.getEncoded() + "#theme=night&bordered=true&titled=true";
        return new DashboardParams(url);
    }

    class DashboardParams {
        private String url;

        public DashboardParams(String url) {
            this.url = url;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }
    }
}