遇到一个奇怪的问题,测试环境没有出现,本地连正式数据库也没复现。
主要业务逻辑是通过筛选条件从数据库导出一批数据。异常情况是,选择的筛选条件失效了,导致导出了全量数据,这搞不好会有数据泄露风险。
已知列表分页查询是没有问题的,筛选条件都能生效,代码如下:
但是导出时却没起作用,导出代码:
观察可知,他们都调用的getSqlMap方法,该方法具体作用就是从HttpServletRequest中获取相关条件参数,并放到Map中,供后续查询代码使用,如下:
按常理推断,输入和代码一致,得到的结果应该是一致的,但是却不是这样
使用jvm神器arthas,watch一下getSqlMap方法,然后分别调用