第三方应用新建一个报表图标,将MACO报表URL链接配置在报表图标中,链接中附带一个或多个登录参数,例如:
yyy
http://192.168.1.10:8080/view/report.do?reportId=xxx&app=crm&usercode=zzz
Warning 注意:通过URL集成最好附带一个参数app,用于识别本次登录是通过那个app过来的集成登录
- 登录MACO系统,进入 平台管理-系统设置, 开启用户登录脚本
编辑用户登录脚本,写入相应的登录逻辑
Code Block language js 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 usernameapp=request.getParameter("usernameapp"); var passworduserCode=request.getParameter("passwordusercode"); var str = webService.get("http://127.0.0.1:8080/login?username="+username+"&password="+password); //如果app参数是空,说明不是集成登录,执行系统自带的登录逻辑 if(!StringUtils.isEmpty(strapp)){ var json = JSONObject.parseObject(str result.setSuccess(true); var success = json.getBoolean("success"result.setUseStandardVerification(true); } else if(!successStringUtils.equals(app, "crm"){ //如果是crm系统过来的登录 //检查系统中是否有这个用户 var hasUser = result.setSuccess(falseuserService.hasUser(userCode); result.setMessage("用户名或密码错误"); }else{ if(hasUser){ //登录成功 result.setSuccess(true); } }else { //登录失败,执行系统自带的登录逻辑,显示登录界面 result.setSuccess(false); result.setMessagesetUseStandardVerification("用户名或密码错误"true); } }
