Merge pull request #5723 from alcohol/user-password-mask-patch
User password masking patchpull/5733/head
commit
d7f821434d
|
@ -44,12 +44,12 @@ class ProcessExecutor
|
|||
public function execute($command, &$output = null, $cwd = null)
|
||||
{
|
||||
if ($this->io && $this->io->isDebug()) {
|
||||
$safeCommand = preg_replace_callback('{(://)(?P<user>[^:/\s]+):(?P<password>[^@\s/]+)}i', function ($m) {
|
||||
$safeCommand = preg_replace_callback('{://(?P<user>[^:/\s]+):(?P<password>[^@\s/]+)@}i', function ($m) {
|
||||
if (preg_match('{^[a-f0-9]{12,}$}', $m['user'])) {
|
||||
return '://***:***';
|
||||
return '://***:***@';
|
||||
}
|
||||
|
||||
return '://'.$m['user'].':***';
|
||||
return '://'.$m['user'].':***@';
|
||||
}, $command);
|
||||
$this->io->writeError('Executing command ('.($cwd ?: 'CWD').'): '.$safeCommand);
|
||||
}
|
||||
|
|
|
@ -54,10 +54,16 @@ class ProcessExecutorTest extends TestCase
|
|||
{
|
||||
$process = new ProcessExecutor($buffer = new BufferIO('', StreamOutput::VERBOSITY_DEBUG));
|
||||
$process->execute('echo https://foo:bar@example.org/ && echo http://foo@example.org && echo http://abcdef1234567890234578:x-oauth-token@github.com/', $output);
|
||||
|
||||
$this->assertEquals('Executing command (CWD): echo https://foo:***@example.org/ && echo http://foo@example.org && echo http://***:***@github.com/', trim($buffer->getOutput()));
|
||||
}
|
||||
|
||||
public function testDoesntHidePorts()
|
||||
{
|
||||
$process = new ProcessExecutor($buffer = new BufferIO('', StreamOutput::VERBOSITY_DEBUG));
|
||||
$process->execute('echo https://localhost:1234/', $output);
|
||||
$this->assertEquals('Executing command (CWD): echo https://localhost:1234/', trim($buffer->getOutput()));
|
||||
}
|
||||
|
||||
public function testSplitLines()
|
||||
{
|
||||
$process = new ProcessExecutor;
|
||||
|
|
Loading…
Reference in New Issue