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 {
String content = "{\"loginName\":\"hw210329@gmail.com\",\"password\":\"94d02afbcfd81e19bd15c9c890667dce\"}"; // "baishuanglin888@gmail.com"; // "hw210329@gmail.com";// 随机生成密钥byte[] key = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();// 构建AES aes = SecureUtil.aes(Common.SECRET_KEY.getBytes("utf-8"));// 加密byte[] encrypt = aes.encrypt(content);// 解密byte[] decrypt = aes.decrypt(encrypt);// 加密为16进制表示String encryptHex = aes.encryptHex(content);// 解密为字符串String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);System.out.println("-----encryptHex = " + encryptHex);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、测试环境报表访问
说明:如果无法访问,请重新获取token并替换
1)报表模板列表:
2)获取链接
