2016-08-17 109 views
5

最近,我改变了这里的密码是从String加工成新的Password类在我的代码的所有地方。 Password.toString()方法现在只打印[********]。如果我想获得密码,我必须致电Password.getPassword()。这样我就可以确定没有密码会被意外写入日志文件。如何找到toString()方法的用法隐含特定类型

在改变我错过了改变一些线条看起来像这样:

String.format("user:%s", password); 

之前我改变passwordString型的,所以根据需要它被格式化。但我的变化后password被渲染为[*******]。这正是我的意图。但现在我想自动找到所有这些地方。

我试图findbugsfb-contrib插件(ITU_INAPPROPRIATE_TOSTRING_USE),但它并没有发现内部的String.format隐含使用Password.toString()()。

有谁知道另一个的FindBugs的contrib项目或任何其他静态代码分析,可以发现这些代码的地方?

回答

0

ITU只发现使用的toString(),用来在你所推断内容的价值,说如果你分析它的一些值,或者用它来建立一些其他的字符串。探测器在那里让你知道,在许多情况下,你应该不要依赖toString()的内容,因为它应该被认为是“调试”输出。 (如你所见)。

会有办法的误报只是检查的toString的用途(),这始终是有效的。

而且没有,不知道任何探测器,本书虽然这将是非常微不足道的写一个。