Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

  1. 第三方应用新建一个报表图标,将MACO报表URL链接配置在报表图标中,链接中附带一个或多个登录参数,例如:

    Tip
    title示例报表URL
    http://192.168.1.10:8080/view/report.do?reportId=xxx&
    usercode=yyy
    sso=true&app=crm&username=zzz
    Warning

    注意:通过URL集成最好附带一个参数app,用于识别本次登录是通过哪个app跳转过来的集成登录



  2. 登录MACO系统,进入  平台管理-系统设置, 开启用户登录脚本


  3. 编辑用户登录脚本,写入相应的登录逻辑

    Code Block
    languagejs
    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("passwordusername");
    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);
    	}
    }
    Warning

    注意:登录逻辑中可以使用LDAP认证、WebService调用、数据库查询等,详情参考:报表与用户集成