allow FileDownloader to use username:password@ info when downloading through https?
parent
d498e73363
commit
cc1e10e8ae
|
@ -99,7 +99,13 @@ class RemoteFilesystem
|
|||
$this->progress = $progress;
|
||||
$this->lastProgress = null;
|
||||
|
||||
// capture username/password from URL if there is one
|
||||
if (preg_match('{^https?://(.+):(.+)@([^/]+)}i', $fileUrl, $match)) {
|
||||
$this->io->setAuthentication($originUrl, urldecode($match[1]), urldecode($match[2]));
|
||||
}
|
||||
|
||||
$options = $this->getOptionsForUrl($originUrl, $additionalOptions);
|
||||
|
||||
if ($this->io->isDebug()) {
|
||||
$this->io->write('Downloading '.$fileUrl);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
namespace Composer\Test\Util;
|
||||
|
||||
use Composer\Util\RemoteFilesystem;
|
||||
use Installer\Exception;
|
||||
|
||||
class RemoteFilesystemTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
@ -143,6 +144,19 @@ class RemoteFilesystemTest extends \PHPUnit_Framework_TestCase
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public function testCaptureAuthenticationParamsFromUrl()
|
||||
{
|
||||
$io = $this->getMock('Composer\IO\IOInterface');
|
||||
$io
|
||||
->expects($this->once())
|
||||
->method('setAuthentication')
|
||||
;
|
||||
|
||||
$fs = new RemoteFilesystem($io);
|
||||
$fs->getContents('example.com', 'http://user:pass@www.example.com/something');
|
||||
}
|
||||
|
||||
public function testGetContents()
|
||||
{
|
||||
$fs = new RemoteFilesystem($this->getMock('Composer\IO\IOInterface'));
|
||||
|
|
Loading…
Reference in New Issue