【发布时间】:2016-12-23 21:58:24
【问题描述】:
最近,我将代码中处理密码的所有位置从 String 更改为新的 Password 类。 Password.toString() 方法现在只打印 [********]。如果我想得到密码,我必须打电话给Password.getPassword()。这样我就可以确保密码不会被意外写入日志文件。
在更改期间,我错过了更改一些如下所示的行:
String.format( "user:%s", password );
在我更改之前password 的类型为String,因此它已根据需要进行了格式化。但是在我更改password 之后,它被渲染为[*******]。这正是我想要的。但现在我想自动找到所有这些地方。
我尝试使用 fb-contrib 插件 (ITU_INAPPROPRIATE_TOSTRING_USE) 使用 findbugs,但没有发现在 String.format() 中隐式使用 Password.toString()。
有人知道另一个 findbugs contrib 项目或任何其他静态代码分析器可以找到这些代码位置吗?
【问题讨论】:
标签: java tostring static-analysis findbugs