package org.voovan.http.server; import org.voovan.http.server.context.HttpFilterConfig; /** * Http 服务过滤器接口 * @author helyho * * Voovan Framework. * WebSite: https://github.com/helyho/Voovan * Licence: Apache v2 License */ public interface HttpFilter { /** * 请求过滤器,在请求之前 * 如果在这里修改了response参数的 body ( 即:response.body().size() 大于 0 ),则不会执行路由处理, * 整个过滤器执行完成后,返回response. * @param filterConfig 过滤器配置对象 * @param request 请求对象 * @param response 响应对象 * @param prevFilterResult 上一个过滤器的结果,可用来传递状态参数,用于控制过滤器.第一个过滤器接收的值是 null. * @return 本地过滤器的结果,用于传递到下一个过滤器的prevFilterResult参数 */ public Object onRequest(HttpFilterConfig filterConfig, HttpRequest request, HttpResponse response, Object prevFilterResult ); /** * 响应过滤器,在响应之后 * 路由处理器处理完成,且返回给浏览器之前 * @param filterConfig 过滤器配置对象 * @param request 请求对象 * @param response 响应对象 * @param prevFilterResult 上一个过滤器的结果,可用来传递状态参数,用于控制过滤器.第一个过滤器接收的值是 null. * @return 本地过滤器的结果,用于传递到下一个过滤器的prevFilterResult参数 */ public Object onResponse(HttpFilterConfig filterConfig, HttpRequest request, HttpResponse response, Object prevFilterResult); }