1
0
Fork 0

Merge pull request #2015 from jaypea/filedownloader_basicauth

allow FileDownloader to use username:password@ info when downloading
pull/2008/merge
Jordi Boggiano 2013-06-18 06:03:32 -07:00
commit 7aa03410e2
2 changed files with 20 additions and 0 deletions

View File

@ -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);
}

View File

@ -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'));