• 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为反序列化之后的返回值。

  • 相关阅读:
    hdu 4107 Gangster 线段树(成段更新)
    hdu 3037 Saving Beans (lucas定理)
    hdu 3944 DP? (Lucas 定理)
    hdu 5038 Grade 水
    ASP.NET Core 配置 MVC
    ASP.NET Core 静态文件
    ASP.NET Core 异常和错误处理
    ASP.NET Core 中间件
    ASP.NET Core 项目配置 ( Startup )
    ASP.NET Core 基本项目目录结构
  • 原文地址:https://www.cnblogs.com/zhjh256/p/6096343.html
Copyright © 2020-2023  润新知