股票委托接口系统拦截模块怎么设置?

股票委托接口系统在执行程序的时候,因为要访问到一些数据的传输, 难免会产生数据传输错误,或者说在访问接口服务器的时候,数据参数会出现恶意请求,在这种情况,肯定是系统产生不良的影响的。对此,就要在股票委托接口系统那里设置拦截,又是怎么拦截的呢?

例如WebMvcConfigurerAdapter实现springboot拦截器链HandlerInterceptor编写业务拦截器的方法结合股票委托接口系统的api系统调用查询数据的作用基础上,增加这一操作:

相关函数

调用结果

Deinit

Logoff

Init

返回值为 授权成功的交易账户数量

返回值 < 1 时, 无需调用 Deinit 接口, 也不能调用其它接口, 否则会出错!

Logon

调用成功: 返回值为 客户端 Id

调用失败: 返回值 <= 0

参数 ErrorInfo 保存错误信息, 需要分配 256 字节的空间

GetExpireDate

返回值为 API 授权到期日期

那么,实现拦截执行SignInterceptor:
packagecom.caiex.vb.interceptor;
importjavax.annotation.Resource;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.commons.lang3.StringUtils;
importorg.apache.logging.log4j.LogManager;
importorg.apache.logging.log4j.Logger;
importorg.springframework.stereotype.Component;
importorg.springframework.web.servlet.HandlerInterceptor;
importorg.springframework.web.servlet.ModelAndView;
importcom.alibaba.fastjson.JSON;
importcom.caiex.redis.service.api.RedisApi;
importcom.caiex.vb.model.Response;
importcom.caiex.vb.utils.CaiexCheckUtils;
@Component
publicclassSignInterceptorextendsBaseValidatorimplementsHandlerInterceptor{
privateLoggerlogger=LogManager.getLogger(this.getClass());
@Resource
privateRedisApiredisApi;
publicvoidafterCompletion(HttpServletRequestarg0,
HttpServletResponsearg1,Objectarg2,Exceptionarg3)
throwsException{
//TODOAuto-generatedmethodstub
}
publicvoidpostHandle(HttpServletRequestarg0,HttpServletResponsearg1,
Objectarg2,ModelAndViewarg3)throwsException{
//TODOAuto-generatedmethodstub
}
publicbooleanpreHandle(HttpServletRequestarg0,HttpServletResponsearg1,
Objectarg2)throwsException{
if(isTestIpAddr(arg0)){
returntrue;
}
StringsecurityKey=redisApi.hGet("securityKey",arg0.getParameter("agentid"));
if(StringUtils.isEmpty(securityKey)){
Responseresponse=newResponse();
response.setData(null);
response.getResult().setResultCode(8001);
response.getResult().setResultMsg("缺少私钥,渠道号:"+arg0.getParameter("agentid"));
logger.error("缺少私钥,渠道号:"+arg0.getParameter("agentid"));
InterceptorResp.printJson(arg1,response);
returnfalse;
}
if(StringUtils.isEmpty(arg0.getParameter("sign"))||!arg0.getParameter("sign").equals(CaiexCheckUtils.getSign(arg0.getParameterMap(),securityKey))){
Responseresponse=newResponse();
response.setData(null);
response.getResult().setResultCode(3203);
response.getResult().setResultMsg("参数签名认证失败");
logger.error("参数签名认证失败:"+JSON.toJSONString(arg0.getParameterMap())+"securityKey="+securityKey);
InterceptorResp.printJson(arg1,response);
returnfalse;
}else{
returntrue;
 }
}

也就是说,股票委托接口在拦截模块的设置会通过加密的形式将数据传输不会模糊失真,数据参数就会依据相应的形式输出。在这一点拦截设置上,很多接口都会有这些方面的问题,也对应采用处理方法,减少了数据传输的错误。
 

猜你喜欢

转载自blog.csdn.net/Q_121463726/article/details/128639194
今日推荐