1、获取token

流程:PHP调Java这边ERP业务系统(新系统)提供的接口,Java校验账号及密码,通过之后会返回token

接口:http://{host}/jmreport/user/login

host: 测试:http://192.168.80.3:8088 正式:

方式:GET请求

地址栏传参: 参数 reqData 示例: {domain}/jmreport/user/login?reqData={reqData}

reqData参数说明:账号和密码的JSON串(jsonStr),然后aes加密,secret必须先utf-8 示例: reqData = AES.aes(SECRET.getBytes(“utf-8”)).Encrypt(jsonStr)

SECRET = zcCyMQr13FjcgpOx3KaU0piyHGxq8WxJ

jsonStr 示例: { “loginName”: “hw210329@gmail.com”, “password”: “94d02afbcfd81e19bd15c9c890667dce” }

Java 加解密示例:

public static void main(String[] args) throws UnsupportedEncodingException {

  1. String content = "{\"loginName\":\"hw210329@gmail.com\",\"password\":\"94d02afbcfd81e19bd15c9c890667dce\"}"; // "baishuanglin888@gmail.com"; // "hw210329@gmail.com";
  2. // 随机生成密钥
  3. byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
  4. // 构建
  5. AES aes = SecureUtil.aes(Common.SECRET_KEY.getBytes("utf-8"));
  6. // 加密
  7. byte[] encrypt = aes.encrypt(content);
  8. // 解密
  9. byte[] decrypt = aes.decrypt(encrypt);
  10. // 加密为16进制表示
  11. String encryptHex = aes.encryptHex(content);
  12. // 解密为字符串
  13. String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
  14. System.out.println("-----encryptHex = " + encryptHex);
  15. System.out.println("-----decryptStr = " + decryptStr);

}

2、配置报表连接

菜单配置: http://{host}/jmreport/view/781379242307268608?token={token} token 为第一步获取到的

3、请求报表及校验

1)如果token为空,则需要先获取token并赋值; 2)token存在有效期:30分钟,过期需要重新获取或刷新token; 3)token 传递, a.方式一:header.add(“token”, token);【推荐】 b.方式二:header.add(“X-Access-Token”, token) c.方式三:在地址栏拼token={token}

4、测试环境报表访问

地址: http://192.168.80.6:8088/jmreport/list?token=eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE2NzYzNTQxMDAsInV1aWQiOiJ1YnQwbzJpYWp3dGJkZWx1Mm9wOG02Y284anh4am8wcXJranJmbDV1Zzlldm9penkwZzUyNXFjcTFzaDNybmwyIiwiaWF0IjoxNjc2MzUzMjAwfQ.iTvjfGdeLYE47h8VbFTepx7VW_0jOMH7-fdn1E8GV7Mt7j04PumaRVeEgOu8ZEK7gPptCncmwqWMBdaww_JhHw

说明:如果无法访问,请重新获取token并替换

1)报表模板列表:

2)获取链接

菜单配置,参考: http://report.jeecg.com/2213269#_Vue2__70