@RequestMapping(value = "/getIndexHouseLists.rest", method = {RequestMethod.POST },
produces = "application/json;charset=UTF-8", consumes = "application/json")
@ResponseBody
public void getIndexHouseLists(HttpServletRequest request, HttpServletResponse response,@RequestBody HouseRequest houseRequest){
SystemUtil.writeResponse(request, response, JsonTool.writeValueAsString(houseService.getIndexHouseLists(houseRequest)));
}
请求方式如上,现在想吧请求的参数 houseRequest 对象里面的字段或者内容进行加密,有什么好的办法在请求过来后,把参数里面的值进行解密?
已经用 重写MappingJackson2HttpMessageConverter 的read方法处理啦,谢谢各位######非对称加密,如 RSA 加密,浏览器用服务器端的公钥进行加密,服务器端用自己的私钥进行解密。######
不好意思,我描述的有问题,我的意思是说,当加密的请求过来后,如何把对象里面的字段值进行解密! 例如houseRequest对象里面 有 字段addr=1231,假如请求过来的是 addr = [加密字符串],把addr 加密的字符串 解密城1231;######写个拦截器做这件事######
考虑啦这个方式,但是这个方式不太适合,我现在有多个controller类,这个方法里面是:HouseRequest houseRequest对象,另一个controller中定义的是 SiteSearchRequest 等等很多类,如果用过滤器获取的值为:Object对象,要对所有的XXXRequest对象进行 instanceof 判断一遍,然后才能强制转换成该类,参数解密,再进行下一步操作,因为每一个XX Request类的参数都不一样,感觉这样写太麻烦啦!所以想看看有什么更好的办法吗?######写拦截器比较好######
我想的是重写 Spring中的MappingJackson2HttpMessageConverter ,但是当前没有思路,不知道是否研究过这样的方式?######我们之前是用过滤器,把加密属性解密后传到对应的方法里,跟你这个类似######
其实过滤器我后面事实看看,本来打算用切面的,但是切面获取传入的对象用的方式是:Object[] getArgs() 用joinpoint.getArgs() 获取的时候,他是根据controller中定义的参数来确定具体哪一个才是你想要的;比如:我们上面的方式获取的就是 args request对象 args response对象 args才是 自定义的对象,如果调换位置,获取的第几个参数数也相应的有变化,不够灵活所以才更改为这个办法!######好吧,适合自己的才是好的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。