Мы знаем, что рекомендуется использовать char [] над java.lang.String для хранения паролей. Это по двум причинам (как я читал):
- char [] изменяются, поэтому мы можем очистить пароли после использования.
- Строковые литералы отправляются в пул, который не будет собирать мусор, как другие объекты, поэтому может появляться в дампах памяти.
Но java.sql.DriverManager не имеет getConnection(), которые соответствуют вышеуказанной лучшей практике, потому что его паролем является String.
DriverManager.getConnection(String url, String user, String password)
Я думаю, что API должен иметь перегруженный метод со следующей сигнатурой:
DriverManager.getConnection(String url, String user, char [] пароль)
Что вы думаете об этом? Вы видите какой-либо альтернативный способ преодолеть этот откат?
Хотелось бы услышать ваши мысли.