zoukankan      html  css  js  c++  java
  • spider RPC过滤器

    请访问https://git.oschina.net/zhjh256/io-spider获取最新更新。

    spider支持在请求执行前或完成后进行特殊处理,比如安全性检查、敏感字段混淆等等。为此,spider提供了BeforeFilter和AfterFilter。其执行位置如下图所示:

    流水线插件配置在spider.xml配置文件的<plugin pluginId=”spider.filter”>节点下,如下所示:

    <plugin pluginId=”spider.filter”>

    <filter>com.ld.net.spider.demo.filter.BeforeFilterImpl1 </filter>

    <filter>com.ld.net.spider.demo.filter.BeforeFilterImpl2</filter>

    <filter> com.ld.net.spider.demo.filter.AfterFilterImpl1 </filter>

    <filter> com.ld.net.spider.demo.filter.AfterFilterImpl2 </filter>

    </plugin>

    其中com.ld.net.spider.demo.filter.BeforeFilterImpl1为完整类名,放置在classpath*目录下即可。过滤器类在配置文件中的顺序为执行顺序,spider运行时会根据给定类实现了BeforeFilter或者AfterFilter自动确定其为前置或后置过滤器,没有实现任何一个接口的类会自动在启动时抛出异常并中止。

    为最佳性能和灵活性,建议仅在主动调用客户端实现前置或后置过滤器,服务实现端实现前置或后置过滤器,尽可能避免在路由节点使用过滤器(当节点对于某功能充当路由节点时,请求参数以及返回值将以未解密JSON StringBuilder的格式传递)。

    前置过滤器

           要进行前置处理,必须实现BeforeFitler过滤器,其签名如下所示:

    package com.ld.net.spider.filter;

    import com.ld.net.spider.meta.SpiderPacketHead;

    public interface BeforeFilter {

        public void doFilter(SpiderPacketHead head,Object origParam);

    }

    head spider上下文信息。

    origParam为序列化之前的原始请求参数。

    后置过滤器

           要进行后置处理,必须实现AfterFitler过滤器,其签名如下所示:

    package com.ld.net.spider.filter;

    public interface AfterFilter {

           public void doFilter(SpiderPacketHead head,Object retObj);

    }

    head spider上下文信息。

    retObj为反序列化之后的返回值。

  • 相关阅读:
    JavaScript 基本类型值-Undefined、Null、Boolean
    Git学习之路(6)- 分支操作
    Git学习之路(5)- 同步到远程仓库及多人协作问题
    setTimeout小总结
    Git学习之路(4)- 撤销操作、删除文件和恢复文件
    Git学习之路(3)-提交文件到三个区
    Git学习之路(2)-安装GIt和创建版本库
    Git学习之路(1)-Git简介
    两种常见挂载Jenkins slave节点的方法
    rabbitmq集群节点操作
  • 原文地址:https://www.cnblogs.com/zhjh256/p/6096343.html
Copyright © 2011-2022 走看看