Servlet成员字段可能允许一个用户查看其它用户的数据
@SuppressWarnings("serial") @Scope("prototype") @Controller(value="powerRoleAction") public class RoleAction extends BaseAction { private String roleId; @Resource(name="powerRoleService") private RoleService powerRoleService; private AdtFsRoleVO adtFsRoleVO; /** * @Title: index * @Description:角色信息模块索引函数 * @param @return * @return String * @throws */ public String index(){ return SUCCESS; } /** * @Title: getItems * @Description:获得角色列表 * @param * @return void * @throws */ public void getItems(){ Pagination pagination = null; try{ if(adtFsRoleVO==null){ adtFsRoleVO =new AdtFsRoleVO(); } pagination = this.powerRoleService.getPageList(adtFsRoleVO, page, rows, sort, order); }catch(Exception e){ e.printStackTrace(); } List<AdtFsRoleVO> roleList = pagination.getList(); JsonConfig config = new JsonConfig(); config.setIgnoreDefaultExcludes(false); config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); // config.registerJsonValueProcessor(Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); //date processor register config.setExcludes(new String[]{//只要设置这个数组,指定过滤哪些字段。 }); try { String json=JSONSerializer.toJSON(roleList,config).toString(); outJsonPlainString(response,"{"total":" + pagination.getTotalCount() + ","rows":"+json + "}"); } catch (Exception e) { e.printStackTrace(); } }
公司代码扫描时报这样的错 : 类RoleAction 是独立的,因此成员字段adtFsRoleVo 可以在各个用户之间共享;导致结果是一个用户可以查看其它用户的数据。
try{ if(adtFsRoleVO==null){ adtFsRoleVO =new AdtFsRoleVO(); } pagination = this.powerRoleService.getPageList(adtFsRoleVO, page, rows, sort, order);
我是怎么看也感觉这没错,不知各位是否有很好的解决方法。。。。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
恩恩。。我也是觉得这是没问题的,现在有点怀疑公司代码扫描系统的规则了,难道基于注解开发他就扫不出来,我去试试把scope恢复到配置文件中。。
回复
代码检查始终是的死的。做参考就好, 不过我建议你把scope删掉,成员变量也删掉,用method内变量来处理就好。。。
回复
恩恩。。我去试试