83 Commits (b4ff2032cfe4e618005bba283aaa05b8bdcc1c2f)

Author SHA1 Message Date
Jordi Boggiano a7e88f7a80 Unfold aliases in streamable repos since aliases are already loaded by the pool, refs #1346, fixes #1851 11 years ago
Martin Hasoň 753a8345cb Added support for the alias of an aliased package 11 years ago
Jordi Boggiano d38eb244fa Add PlatformRepository::PLATFORM_PACKAGE_REGEX to remove duplication 11 years ago
Jordi Boggiano 2b385cbe58 Fix dependency flags not applying to provides/replaces, fixes #1771 11 years ago
Jordi Boggiano 41392ace56 Check that a repo has no providers when getPackages is called to catch any mis-use 11 years ago
Jordi Boggiano be861f090a Remove filterPackages and add RepositoryInterface::search, refactor all commands to use new methods and remove all usage of the full package list for Composer repositories that support providers, fixes #1646 11 years ago
Jordi Boggiano 095852933e Remove code duplication, add support for searchUrl 11 years ago
Jordi Boggiano 573b7a0fb7 Only downgrade providers but not the notification url 12 years ago
Jordi Boggiano d4c9a9004a Add support for the hashed provider includes 12 years ago
Jordi Boggiano 2c4c5dd764 Fail hard only after 3 failed attempts 12 years ago
Jordi Boggiano b750e70f5f Abort execution when a RepositorySecurityException is thrown 12 years ago
Jordi Boggiano 995dc40130 Make packagist downgrade out of ssl after fetching the main file, since the other files can be verified via sha256 12 years ago
Jordi Boggiano 211b69b38b Adjust exception message 12 years ago
Jordi Boggiano b59489f6ae Merge remote-tracking branch 'edas/exception-on-broken-signature' 12 years ago
Jordi Boggiano 9521d1e7ad Make use of new hashed provider filenames, fixes #1431, refs composer/packagist#283 12 years ago
Eric Daspet 59f8be3b92 Throw Exception on broken signature
This is related to issue #1562

With a fresh installation of Composer I had the following message:

> The contents of https://packagist.org/p/providers-latest.json do not
match its signature, this is most likely due to a temporary glitch but
could indicate a man-in-the-middle attack.
> Try running composer again and please report it if it still persists.

This was *probably* a temporary glitch, as the error did not appear
again, even after a full reinstallation of all packages.

*However* Composer had no way to differentiate a man-in-the-middle
attack and a temporary glitch. The installation / update did continue
despite the problem and files where installed / updates with no easy
rollback. These files may have been corrupted with malicious code and I
have no way to check they don't.

This is a *serious* security issue.

The code in [ComposerRepository line
434](https://github.com/composer/composer/blob/master/src/Composer/Repos
itory/ComposerRepository.php#L434) states

```php
// TODO throw SecurityException and abort once we are sure this can not
happen accidentally
````

Even if the broken signature may happen in accidentally in a standard
process, if it may be a security issue, we have to abort the procedure,
or at least ask for confirmation to the user. If it helps continuing
despite the temporary glitch, it may be possible to add a command line
switch like `--ignore-signature` to force the process to continue.

Proposed :
Send a RepositorySecurityException instead of the warning, even if this
may happen accidentally
12 years ago
Jordi Boggiano a8f74a0983 Allow notification from locked installs, fixes #1368, fixes #1372, fixes #1369 12 years ago
Jordi Boggiano e868c9706b Add support for batch notifications 12 years ago
Jordi Boggiano 15475f0ef2 Rename cache dirs to consolidate them by purpose 12 years ago
Jordi Boggiano cbd91b5952 Fix FILTER_VALIDATE_URL not supporting IDNs 12 years ago
Martin Hasoň 45c1c3f881 Fixed package name for stability test in ComposerRepository 12 years ago
Bilal Amarni b10c832be0 fixed a typo 12 years ago
Jordi Boggiano 125ff3e4f5 Fix root aliasing with new providers repo format 12 years ago
Jordi Boggiano ad9f887edd Clarify error message to sound less scary until we can guarantee it 12 years ago
Chris Smith 9ed481ef02 Fix handling of legacy Composer repositories 12 years ago
Jordi Boggiano e887f6cea9 Fix CS 12 years ago
Jordi Boggiano 89d4df990a Use JsonFile to decode cached entries 12 years ago
Jordi Boggiano fef3dacdfb Reset ids of aliased packages as well 12 years ago
Jordi Boggiano 338127ff9c Disable failure on hash mismatch until it can be proven to work reliably 12 years ago
Jordi Boggiano 5978197b5d Reset package IDs before they can be used in the pool in case there are already some in the cache 12 years ago
Jordi Boggiano 541bcabbc0 Actually check the hash after downloading 12 years ago
Jordi Boggiano 07f72e9fb6 Add support for provider listings 12 years ago
Jordi Boggiano a3f9accd37 Fix various dumb issues 12 years ago
Jordi Boggiano aafc1f7857 Make sure alias package have a repo instance set 12 years ago
Jordi Boggiano 41c7432fef Do not fetch from repo for packages that obviously can not be there 12 years ago
Jordi Boggiano c0e5736ae7 Add support for one-file-per-provider composer repositories 12 years ago
Jordi Boggiano 116b822953 Fix loop and add missing options 12 years ago
Jordi Boggiano 1d80720405 Add retries and failover of all jsons to cache even if the main one worked 12 years ago
Jordi Boggiano fb296972ef Enable https for packagist when possible 12 years ago
Sander Marechal 6cf860669f Add repository stream context options
Add support for passing stream context options to the
StreamContextFactory. This allows support for SSH keyfiles, SSL
certificates and much more. Example:

{
    "repositories": [
        {
            "type": "composer",
            "url": "ssh2.sftp://host:22/path/to/packages.json",
            "options": {
                "ssh2": {
                    "username": "composer",
                    "pubkey_file": "/path/to/composer.key.pub",
                    "privkey_file": "/path/to/composer.key"
                }
            }
        }
    ]
}
12 years ago
Sander Marechal 4799053ca9 Allow dot in URL scheme
This makes it possible to support SSH2 urls, like ssh2.scp://
See: http://www.php.net/manual/en/wrappers.ssh2.php
12 years ago
Jordi Boggiano c14826dd1e Fix exception handling when loading repos 12 years ago
Jordi Boggiano fe4516aff8 Clarify exception messages when a package can not be loaded from a composer repository, fixes #1070 12 years ago
Povilas Balzaravicius Pawka 57d1b5a37d Issue #1056. Fixed callback call error on search command. 12 years ago
Jordi Boggiano 803178d28f CS fixes for #1038 12 years ago
Christoph Hochstrasser 560d6daccf Using separate variable for URL parts 12 years ago
Christoph Hochstrasser 841efc98a6 Appending 'packages.json' only if not present in URL 12 years ago
Jordi Boggiano c14bc368b0 Fix memory usage of the update command 12 years ago
Jordi Boggiano e3b6bd781c Add RepositoryInterface::filterPackages to stream ops on lists
This cuts down on memory usage and also speeds up the search command to a third of its previous time
12 years ago
Jordi Boggiano d6de4a0036 Rename Package interfaces to reduce BC issues 12 years ago