On Wed, 23 Jun 2021 17:20:27 GMT, Alexander Zuev <kiz...@openjdk.org> wrote:

> 8268775: Password is being converted to String in AccessibleJPasswordField

The problem here is that if someone uses the accessibility methods on 
JPasswordField it will lead to unencrypted password being stored in the local 
String variable and that in turn can lead to it being recorded in, say, crash 
tump file where it can be found amongst the string literals. This is highly 
improbable scenario but it can be done so we better to not do it. And there are 
only two places where it happens - because in other methods we only serving the 
AccessibleText.CHARACTER retrieval which means that we are getting one password 
character at a time in a separate String variable which is Ok. These two places 
are at methods getAtIndex and getTextSequenceAt where we requesting something 
other than AccessibleText.CHARACTER. There we were converting password from the 
array of chars to the String only to pass this string to the method that 
generates string of echo characters of the same length. Instead i am doing 
conversion myself filling in the returned array with echo characters a
 nd returning constructed string. The rest of the changes is just a slight code 
cleanup - getting rid of the local variable that is used only to store some 
value before passing it to another method.

-------------

PR: https://git.openjdk.java.net/jdk17/pull/127

Reply via email to