目录
企业级MA Filter
1)理解Filter
Filter,字面上的意思就是过滤器,在企业版MAServer中提供了设置 filter 的机制。在服务请求的过程中,在从企业版 MAServer到业务服务的请求过程中,Filter可以插入服务的前后拦截事件。具体的插入先后顺序为:
app-request-filter —>request-filter —>业务服务—>response-filter—> app-response-filter。
2)配置说明
配置文件为confconfigureappidmafilter.xml。有四种类型
- app-request-filter:针对某个应用的请求的
- filter request-filter:针对服务的某个请求的
- filter app-response-filter:针对某个应用的响应的
- filter response-filter:针对某个服务的响应的 filter
下面分别进行说明:
app-request-filter:当对该 app 进行请求操作的时候,在具体业务操作之前进行该 filter 处理。
需要实现该接口:com.yonyou.uap.um.filter.IMaRequestFilter。
app-response-filter:会在对 app 的业务操作执行后进行处理的 filter。需要实现的接口: com.yonyou.uap.um.filter.IMaResponseFilter。
request-filter:会对该 app 的请求的服务进行过滤,在服务进行之前,需要实现的接口: com.yonyou.uap.um.filter.IMaRequestFilter。
response-filter:会对该 app 的请求服务进行过滤,是在业务服务执行之后进行。需要实现的接口: com.yonyou.uap.um.filter.IMaResponseFilter。
3)代码说明
req参数是http请求对象,paraMap是设备端传入MA的参数Map.
可以在这里对应用服务进行校验,例如在处理服务之前对用户名和密码进行校验操作
public class AppLoginFilter implements IMaRequestFilter{
@Override
public void requestFilter(HttpServletRequest req, Map<String, Object> paraMap) throws MaFilterException {
//校验处理。若校验失败,抛出异常即可
}
}