更新时间:2024-12-27 GMT+08:00
如何开发映射脚本
OneAccess支持将企业的组织与用户属性映射至应用系统。可通过映射脚本自动生成应用的属性值,同时,可限制映射至应用的属性值。
下面将为您介绍如何开发映射定义的脚本。
代码规则
在编写映射脚本时,OneAccess对脚本做了一些限制。包括禁止使用Java class、限制使用CPU的时间、限制内存的使用量、限定脚本格式、限制使用部分函数。
- 禁止使用Java class。
var File = Java.type('java.io.File'); File;
会抛出下面的异常:
java.lang.ClassNotFoundException: java.io.File
- 限制使用CPU的时间。
如果使用下面的代码:
do{}while(true);
会抛出下面的异常:
ScriptCPUAbuseException
- 限制内存的使用量。
如果使用下面的代码:
var o={},i=0; while (true) {o[i++] = 'abc'}
会抛出下面的异常:
ScriptMemoryAbuseException
- 限定脚本格式。
为了方便重写脚本,脚本中的if、while、for语句必须使用大括号,否则将出现格式错误。
如果使用下面的代码:
var o={},i=0; while (true) o[i++] = 'abc';
会抛出下面的异常:
BracesException
- 限制使用部分函数。
print echo quit exit readFully readLine load loadWithNewGlobal
脚本示例
- 用户属性
在脚本中可以使用用户(user)这个对象,这个对象中包含了用户的所有属性,具体的属性以属性定义中的属性代码为准。用户属性定义可参考用户属性定义,账号属性定义可参考9。
- 示例1:映射用户注册时间:
var createdAt = user.createdAt; var date =new Date(createdAt); date.toISOString();
- 示例2:映射用户的手机号,并隐藏中间4位:
var mobile = user.mobile; var result = ""; if(mobile.length == 15) { result = mobile.slice(0,7) + "****" + mobile.slice(-4); } result;
- 示例3:根据用户名生成用户邮箱:
var username = user.userName; username.toLowerCase()+"@huaweicloud.com";
- 示例1:映射用户注册时间: