
edi.rule.core.JSRuleGlobalArgs Maven / Gradle / Ivy
package edi.rule.core;
import edi.rule.config.JSRuleProperties;
import edi.rule.extend.interfaces.IJSRuleRoleAuthority;
import edi.rule.model.JSBody;
import edi.rule.model.JSRuleAction;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AccessLevel;
import lombok.Data;
import lombok.Setter;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author 摩拉克斯
* @date 2023年12月8日 上午10:21:25
* 系统内部后台调用引擎时请求参数
* @see JSRuleService#start(String, JSRuleGlobalArgs)
*/
@Data
public final class JSRuleGlobalArgs implements Serializable {
/**
*
http请求时的request对象,非http请求时该对象应为null
* */
private HttpServletRequest request;
/**
*
http响应时的response对象,非http响应时该对象应为null
* */
private HttpServletResponse response;
/**
*
请求方的角色集合,当你确定要使用权限且通过{@link IJSRuleRoleAuthority}接口或其它方法如注解等初始化权限信息后,该参数为空会报权限不足等类似信息,否则不进行权限校验
* */
private Set roles;
/**
* 请求时的签名文本,该签名文本应该是由安全模式对应的类型加密后的密文再加秘钥({@link JSRuleProperties.Security#signKey})组合后再通过签名算法形成的最终文本
*
当数据提供方后台开启安全模式后如果该值为空会报签名错误等类似信息,如果数据提供方后台未开启安全模式则不进行签名校验,此时此处可为空
* */
private String sign;
/**
*
请求时需要全局初始化的变量,该参数用于开发者自定义全局参数
* */
private Map args;
/**
* 请求时的body字符串
* */
@Setter(AccessLevel.PACKAGE)
private JSBody extends JSRuleAction>> body;
public JSRuleGlobalArgs(){
this.args = new HashMap<>();
}
}