异常日志捕获问题,发生异常时,如果只有GET能获取到请求参数.POST PUT不行
版本:renren-security 2.1.0 |
开发环境:JDK8、IDEA、Chrome |
异常日志捕获问题,发生异常时,如果只有GET能获取到请求参数.POST PUT不行。
数据库异常日志中:只有GET能获取到request_params。POST,PUT等都获取不到。
异常的现场没有保存好
这边查看了RenExceptionHandler.saveLog()中没有保存请求体,但是修改后获取请求体为空。由于请求体只能读一次,然后使用了包装Request,但是系统已经有一个XssFilter了,而且Order顺序为MAX_VALUE。我再写一个RequestWrapper,并将Order放在最后,但是,Act工作流中有用到这个对象,强制转换XssHttpServletRequestWrapper肯定会报异常,这一点设计不是很好。所以,现在我加一个RequestWrapper,也没有办法加。因为异常捕获后,过滤器的传递,导致在RenExceptionHandler中拿到的request对象一定是Order顺序为MAX_VALUE的最后一个,目前为XssFilter,但是修改,其他地方就会异常。原因是其他代码中认为XssHttpServletRequestWrapper是最后一个request对象。
希望官方下个版本可以改改。
异常日志保存现场很重要,方便维护和开发。