springmvc消息进行全局加密和解密? 400 报错
问题,如何处理springmvc 中消息的加密和解密
流程
1、http请求统一采用POST,数据为json格式,然后使用AES加密后传到后台
2、后台AES解密后,处理请求,然后将json结果加密,传递到前台
目前想在框架层面进行处理,尝试使用了AOP around Advice,处理后能改变出参,但是无法改变入参,也查了些资料,around Advice主要处理需要缓存共享的信息时用到的
@ResponseBody public Map<String, Object> getTotalByMonth(HttpServletRequest request) { Map<String, Object> acceptMap = beforeAtMethod(request, resultMap);
protected Map<String, Object> beforeAtMethod(HttpServletRequest request, Map<String, Object> resultMap) { Map<String, Object> acceptMap = null; Map<String, Object> hashMap = new HashMap<String, Object>(); acceptMap = setStreamToMap(request); hashMap=encryptService.DeEncrypt(acceptMap);
定义一个全局拦截器RequestHandlerInterceptor implements HandlerInterceptor
在这个方法表示请求前处理,可以解密,修改入参,public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {}
这个方法表示请求后处理,可以加密public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception
######回复 @一气化三清 : controller 里边也能获取到request啊######拦截器我试过了,HttpRequest只能读取一次呀,我在拦截器中读了,后面方法里面就读取不到了######入参的话,可以通过 initBinder 来处理啊######拦截器如何######其实只要实现自己的HttpMessageConverter 接口就可以了,不需要aop,主要是实现read和write方法######怎么感觉使用拦截器会简单,不过没有现成的例子######1.https
2.我们现在做的对参数加密,统一解密成map<String,Object> 相应的 controller ,service 只能在自己做类型转换
######入参可以用filter,请过过来经过解密,不影响springmvc的编码和实现,这个我们这边有项目统一实现过,很方便。
响应加密的话可以intercepter吧
入参可以用filter,请过过来经过解密,不影响springmvc的编码和实现,这个我们这边有项目统一实现过,很方便。
响应加密的话可以intercepter吧
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。