Kürzlich habe ich alle Stellen in meinem Code geändert, an denen Passwörter von String
in eine neue Password
Klasse verarbeitet wurden. Die Methode druckt jetzt nur [********]
. Wenn ich das Passwort bekommen möchte, muss ich Password.getPassword()
anrufen. Auf diese Weise kann ich sicher sein, dass kein Passwort versehentlich in Protokolldateien geschrieben wird.So finden Sie implizite Verwendungen der toString() - Methode für bestimmte Typen
Während der Änderung vermisste ich ein paar Zeilen zu ändern, die wie folgt aussehen:
String.format("user:%s", password);
Vor meinem Wechsel password
vom Typ war String
, so war es wie gewünscht formatiert. Aber nach meiner Änderung wurde password
als [*******]
gerendert. Genau das habe ich beabsichtigt. Aber jetzt möchte ich alle diese Orte automatisch finden.
Ich versuchte findbugs mit dem fb-contrib Plugin (ITU_INAPPROPRIATE_TOSTRING_USE), aber es die impliziten Verwendung von Password.toString()
innerhalb String.format nicht() zu finden.
Kennt jemand ein anderes findbugs contrib-Projekt oder irgendeinen anderen statischen Code-Analysator, der diese Codestellen finden könnte?