...
- 平台管理-》系统设置-》用户登录脚本-》开启
设置用户登录脚本 (页面底部有脚本示例)
脚本中支持的内置参数:
参数名 描述 result 返回值对象 databaseService 数据库操作对象 webService HTTP请求操作对象 ldapService LDAP操作对象 userService 用户操作对象 request 用户的请求 out System.out
result返回值对象属性属性名 描述 success 验证是否成功 message 错误消息 context 上下文 useStandardVerification 是否使用系统用户库验证用户,如果该属性设置为true,
则无论脚本验证结果如何,都是用系统用户库验证
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,并获得返回值
userService对象方法方法原型 描述 public String hasUser(String username)
系统中是否有这个用户 public String verifyUser(String username, String password)
使用系统的账号系统验证用户名和密码 public boolean loginUser(String username) 用户登录
sessionService对象方法方法原型 描述 public void putString(String key, String value)
向session中存入字符串 public String getString(String key)
从session中获取字符串
ldapService对象方法方法原型 描述 public boolean auth(String host, String port, String type, String domain, String username, String password)
LDAP认证 wxcpService对象方法
方法原型 描述 public void addUserToTag(String configId, String tagName, Collection<String> usernames)
将微信用户添加到指定的TAG中 Code Block language js title 将微信企业号用户加入指定的标签 var wxConfigId = "abc"; //配置ID,报表平台->微信企业号->编辑->ID var wxTagName = "标签名称"; //微信企业号中的标签名称 var usernames = JSONArray(); usernames.add("username1"); //报表平台用户名 usernames.add("username2"); //报表平台用户名 wxcpService.addUserToTag(wxConfigId, wxTagName, usernames);
脚本示例: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); //用户库的连接名称 var connectionName = "local dataset"; var param = new ArrayList(); param.add(username); param.add(md5Password); //查询用户库 var sql = "select username,password from users where username=? and password=?"; var data = databaseService.query(connectionName, sql, param); if(data.size() === 0){ result.setSuccess(false); result.setMessage("用户名或密码错误"); }else{ result.setSuccess(true); }
Code Block language js title LDAP用户认证 importPackage(java.util); importPackage(org.apache.commons.codec.digest); //获取用户登录时填写的用户名和密码 var username=request.getParameter("username"); var password=request.getParameter("password"); //LDAP查询 var host = "127.0.0.1";//LDAP主机地址 var port = "389"; //LDAP端口 var type = "simple"; //不用修改 var domain = "abc.com"; //域 var success = ldapService.auth(host,port,type,domain,username,password); if(success){ result.setSuccess(true); }else{ result.setSuccess(false); result.setMessage("用户名或密码错误"); }
Code Block language js title WebService用户认证脚本 importPackage(java.util); importPackage(org.apache.commons.codec.digest); importPackage(com.alibaba.fastjson); importPackage(org.apache.commons.lang); //获取用户登录时填写的用户名和密码 var username=request.getParameter("username"); var password=request.getParameter("password"); var str = webService.get("http://127.0.0.1:8080/login?username="+username+"&password="+password); if(!StringUtils.isEmpty(str)){ var json = JSONObject.parseObject(str); var success = json.getBoolean("success"); if(!success){ result.setSuccess(false); result.setMessage("用户名或密码错误"); }else{ result.setSuccess(true); } }else{ result.setSuccess(false); result.setMessage("用户名或密码错误"); }
...