filter的介绍 filter在Web API中经常会用到,主要用于记录日志,安全验证,全局错误处理等:Web API提供两种过滤器的基本类型:actionfilterattribute,exceptionfilterattribute:两个类都是抽象类,actionfilter主要实现执行请求方法体之前(覆盖基类方法OnActionExecuting),和之后的事件处理(覆盖基类方法OnActionExecuted):exceptionfilter主要实现触发异常方法(覆盖基类方法OnExc…
当前问题: 在我们日常的Web/App测试过程中, Fiddler是一大辅助利器:在我们团队,也经常使用Fiddler进行App抓包测试. 艺龙 App使用的REST(内部称为Mapi)接口,在使用过程中有如下特点: 1.接口请求入参:不论是GET还是POST接口:为保证隐私及数据安全,其入参均会经过一次AES加密:然后做一次Encode处理: 比如: 好吧,不经过解密,我也不知道req参数中又臭又长的到底是什么鬼: 2.接口响应,一般是经过Gzip或lzss压缩的: 这就导致在使用Fiddle…
1.操作日志实体类 @Document(collection = "operation_log") @Getter @Setter @ToString public class OperationLog extends BaseEntityWithId { private String userId; // 操作人 private String resource; // 操作的资源 private String requestMethod; // 请求方式 private String…
项目经测试,发现从IE提交的数据,汉字会变成乱码,实验了网上很多网友说的给ajax加上contentType:"application/x-www-form-urlencoded; charset=UTF-8",发现没有用(ajax的请求标头确实变了,但是还是会乱码) 于是开始试验进行URL编码解码,一开始我是很不想这么干,因为这意味着我的后台也要对应的解码,现在没办法了,于是考虑用一个过滤器将客户端传过来的参数全部解码后再执行方法,没什么好说的,实现如下: public class…
前提 前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景.为了模拟真实的交互场景,先定制一下整个交互流程.第三方传输(包括请求和响应)数据报文包括三个部分: 1.timestamp,long类型,时间戳. 2.data,String类型,实际的业务请求数据转化成的Json字符串再进行加密得到的密文. 3.sign,签名,生成规则算法伪代码是SHA-256(data=xxx&timestamp=11111),防篡改. 为了简单起见,加密和解密采用AES,对称秘钥…
介绍下本次使用beanshell preprocessor的原因: 1.系统下可添加产品,一个产品可以有多个产品主题(比如:产品A(杭州三日游)拥有三个主题(研学.红学.夏令营)),我们在每次添加产品的时候,希望能随机添加若干个主题. 在添加产品的sample中,我们抓包可以看到,当上传多个产品主题时,参数是这样的: 如果直接写在我们请求的参数里(如下图),那么添加的每个产品的主题个数就是固定的(比如我参数里写了ProductThemeDtos[0][Id]:XXXX,那么每个产品的主题都只会增…
[BasicAuthentication] public abstract class ApiControllerBase : ApiController { #region Gloal Property /// <summary> /// token_id /// </summary> public string token_ID { get; set; } /// <summary> /// user_id /// </summary> public s…
1 响应乱码问题 在启用mvc注解的配置中添加一个转换器配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://…
public class GlobalActionFilter : ActionFilterAttribute { private string _requestId; public override void OnActionExecuting(HttpActionContext actionContext) {  base.OnActionExecuting(actionContext); //方法1. var gaf=actionContext.ActionDescriptor.GetCu…
package com.enation.eop; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.Collection; import java.util.Date; import java.util.List; i…