问题描述
准备构建异构语言API系统,采取spring mvc+http+json,用json格式,如何添加签名校验?
想设计添加一个拦截器interceptor,在拦截器里面,解析json请求字符串,统一添加签名校验.
问题难点,Java HttpServeletRequest的ServletInputStream的markSupported()方法返回false,所以stream不支持reset方法,不支持重复读。
如果interceptor中读取了Stream内容,在controller这一层,就获取不到参数和请求内容。所以,要解决stream重复读。
解决方案推荐
使用HttpServletRequestWrapper对HttpServletRequest进行封装,对getInputSteam方法重写,允许多次重复read
[http://www.programcreek.com/java-api-examples/javax.servlet.http.HttpServletRequestWrapper]
[http://blog.csdn.net/it_man/article/details/7556903]使用spring mvc + http + form-data
使用spring mvc + https + json