Support %P (Password or Secret) in qsprintf()
Summary: Depends on D19781. Fixes T6960. Ref T13217. Ref T13216. Occasionally, we issue queries which contain passwords or secrets. Supporting "%P" (similar to the csprintf() "%P") allows us to mask these in logs and output while still generating the correct values when we actually execute a query.
Test Plan:
$ cat test.php <?php require_once 'scripts/init/init-script.php'; $conn = id(new PhabricatorUser())->establishConnection('r'); $query = qsprintf( $conn, 'SELECT %P', new PhutilOpaqueEnvelope('hunter2')); echo $query."\n"; var_dump(queryfx_one($conn, '%Q', $query));
$ php -f test.php SELECT ******** array(1) { ["hunter2"]=> string(7) "hunter2" }
Reviewers: amckinley
Reviewed By: amckinley
Maniphest Tasks: T13217, T13216, T6960
Differential Revision: https://secure.phabricator.com/D19782