第三方应用新建一个报表图标,将MACO报表URL链接配置在报表图标中,链接中附带一个或多个登录参数,例如:
http://192.168.1.10:8080/view/report.do?reportId=xxx&app=crm&usercode=zzz
注意:通过URL集成最好附带一个参数app,用于识别本次登录是通过那个app过来的集成登录 |

编辑用户登录脚本,写入相应的登录逻辑
var version = java.lang.System.getProperty("java.version");
if (version.startsWith("1.8.0")) {
load("nashorn:mozilla_compat.js");
}
importPackage(java.util);
importPackage(org.apache.commons.codec.digest);
importPackage(com.alibaba.fastjson);
importPackage(org.apache.commons.lang);
//获取URL的参数
var app=request.getParameter("app");
var userCode=request.getParameter("usercode");
//如果app参数是空,说明不是集成登录,执行系统自带的登录逻辑
if(StringUtils.isEmpty(app)){
result.setSuccess(true);
result.setUseStandardVerification(true);
} else if(StringUtils.equals(app, "crm"){
//如果是crm系统过来的登录
//检查系统中是否有这个用户
var hasUser = userService.hasUser(userCode);
if(hasUser){
//登录成功
result.setSuccess(true);
} else {
//登录失败,执行系统自带的登录逻辑,显示登录界面
result.setSuccess(false);
result.setUseStandardVerification(true);
}
} |