spider RPC过滤器
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为反序列化之后的返回值。
spider RPC过滤器的更多相关文章
- spider RPC入门指南
本部分将介绍使用spider RPC开发分布式应用的客户端和服务端. spider RPC中间件基于J2SE 8开发,因此需要确保服务器上安装了JDK 8及以上版本,不依赖于任何额外需要独立安装和配置 ...
- spider RPC框架的需求来源与特性介绍(一)
spider RPC 特性介绍 spider RPC 性能测试 spider RPC 入门指南 spider RPC 配置文件参考 spider RPC 开发指南 spider RPC 安全性 spi ...
- spider RPC插件化体系
为了满足灵活扩展的需要,spider支持灵活的自定义插件扩展,从功能上来说,插件和过滤器的差别在于过滤器不会阻止请求的执行同时对于主程序不会有API上的影响(比如servlet 过滤器和监听器)(最多 ...
- spider RPC开发指南
协议与兼容性 spider使用java语言开发,使用Spring作为IoC容器,采用TCP/IP协议,在此基础上,结合SaaS系统模式的特性进行针对性和重点设计,以更加灵活和高效的满足多租户系统.高可 ...
- spider RPC管理接口
为了在独立管理模式下尽可能的容易运行时排查问题,spider中间件提供了一系列restful api用于动态管理当前节点的路由,下游节点等.目前支持的RESTFUL API如下所示: 功能 服务号 R ...
- spider RPC高级特性
多租户 spider原生支持多租户部署,spider报文头对外开放了机构号.系统号两个属性用于支持多租户场景下的路由. 多租户场景下的路由可以支持下述几种模式: n 系统号: n 系统号+服务号( ...
- spider RPC安全性
spider提供了多重安全保障机制,目前主要支持接入握手校验,报文完整性校验,报文加密,报文长度检查四种机制. 接入认证 spider使用两次握手校验,其握手流程如下: 签名AES加密的方式实现. l ...
- spider RPC性能测试报告
测试环境部署结构 测试用例 类 别 说明 请求报文 194字节({"systemId":"PL","appVersion":"qq ...
- spider RPC更新至2.0.0-RELEASE
spider使用java语言开发,使用Spring作为IoC容器,采用TCP/IP协议,在此基础上,结合SaaS金融交易系统的特性进行针对性和重点设计,以更加灵活和高效的满足金融交易系统多租户.高可用 ...
随机推荐
- Oracle-BPM安装详解
H3 BPM安装包括两个部分,基础工作包括安装IIS..net Freamwork基础框架.安装完成之后,主要配置安装包括数据库,H3 BPM 程序.下面详细介绍Oracle与H3 BPM对接安装的整 ...
- SharePoint2016安装的过程的”Microsoft.SharePoint.Upgrade.SPUpgradeException”错误解决方法
前提 在windows server 2012的服务器上运行安装sharepoint2016出现如下错误: Could not load file or assembly ‘Microsoft.Dat ...
- A*算法应用[转]
转自:http://www.cnblogs.com/zhoug2020/p/3468167.html 这是一篇十分精彩/易懂的博客,感谢原博主!本文通过自己的理解在原博文基础上突出一些重点字眼,句子. ...
- CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法
CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法 sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > ...
- EF里Guid类型数据的自增长、时间戳和复杂类型的用法
通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...
- Hello Jexus
一.关于 CentOS CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照 ...
- ucos实时操作系统学习笔记——任务间通信(信号量)
ucos实时操作系统的任务间通信有好多种,本人主要学习了sem, mutex, queue, messagebox这四种.系统内核代码中,这几种任务间通信机制的实现机制相似,接下来记录一下本人对核心代 ...
- Entity Framework 6 Recipes 2nd Edition(9-7)译->在WCF服务中序列化代理
9-7. 在WCF服务中序列化代理 问题 从一个查询里返回一个动态代理对象,想要把它序列为一个POCO(Plain-Old CLR Objects)对象. 实现基于POCO实体对象, 在运行时,EF会 ...
- Entity Framework 6 Recipes 2nd Edition(13-6)译 -> 自动编译的LINQ查询
问题 你想为多次用到的查询提高性能,而且你不想添加额外的编码或配置. 解决方案 假设你有如Figure 13-8 所示的模型 Figure 13-8. A model with an Associat ...
- .NET 基础 一步步 一幕幕[数组、集合、异常捕获]
数组.集合.异常捕获 数组: 一次性存储多个相同类型的变量. 一维数组: 语法: 数组类型[] 数组名=new 数组类型[数组长度]; 声明数组的语法: A.数据类型 [] 数组名称= new 数据类 ...