...
如果需要与现有的用户系统集成,用户无需管理新的密码,可以启用iReport365报表平台的用户登录脚本,当用户登录时,执行管理员设定的脚本,比如使用SQL或WebService验证用户输入的密码。
- 平台管理-》系统设置-》用户登录脚本-》开启
设置用户登录脚本,例如:
设置用户登录脚本
脚本中支持的内置参数:
参数名 描述 result 返回值对象 databaseService 数据库操作对象 webService HTTP请求操作对象 ldapService LDAP操作对象 request 用户的请求 out System.out
databaseService对象方法方法原型 描述 public List query(String connectionName, String sql)
通过指定的连接,执行指定的sql,并获得List的返回值 public List query(String connectionName, String sql, List param)
通过指定的连接,执行指定的sql,传入sql中需要的参数,并获得List的返回值
webService对象方法方法原型 描述 public String get(String url)
请求指定的url,并获得返回值
ldapService对象方法方法原型 描述 public boolean auth(String host, String port, String type, String domain, String username, String password)
LDAP认证
脚本示例:Code Block language js title 数据库验证用户名密码 importPackage(java.util); importPackage(org.apache.commons.codec.digest); //获取用户登录时填写的用户名和密码 var username=request.getParameter("username"); var password=request.getParameter("password"); //将密码MD5加密 var md5Password = DigestUtils.md5Hex(password); //LDAP查询 var port = "389"; ldapService.auth("127.0.0.1",port,"simple","abc.com",username,password); //用户库的连接名称 var connectionName = "user_db_connectionlocal dataset"; var param = new ArrayList(); param.add(username); param.add(md5Password); //查询用户库 var sql = "select uidusername,namepassword from user_tableusers where username=? and password=?"; var data = databaseService.query(connectionName, sql, param); if(data.size() === 0){ result.setSuccess(false); result.setMessage("用户名或密码错误"); }else{ result.setSuccess(true); }
脚本中支持的内置参数:
databaseService对象方法参数名 描述 result 返回值对象 databaseService 数据库操作对象 webService HTTP请求操作对象 request 用户的请求 out System.out webService对象方法方法原型 描述 public List query(String connectionName, String sql)
通过指定的连接,执行指定的sql,并获得List的返回值 public List query(String connectionName, String sql, List param)
通过指定的连接,执行指定的sql,传入sql中需要的参数,并获得List的返回值 方法原型 描述 public String get(String url)
请求指定的url,并获得返回值