Ocramius/ProxyManager

Crush when use composer 2.0.8

alberto-leon-crespo opened this issue · 1 comments

When i try to use library with composer v2.0.8 get next error:

{
    "message": "Call to undefined method Composer\\InstalledVersions::getAllRawData()",
    "exception": "Error",
    "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/ocramius/proxy-manager/src/ProxyManager/Generator/Util/IdentifierSuffixer.php",
    "line": 51,
    "trace": [
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/ocramius/proxy-manager/src/ProxyManager/Generator/Util/IdentifierSuffixer.php",
            "line": 39,
            "function": "loadBaseHashSalt",
            "class": "ProxyManager\\Generator\\Util\\IdentifierSuffixer",
            "type": "::"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/ocramius/proxy-manager/src/ProxyManager/ProxyGenerator/RemoteObject/PropertyGenerator/AdapterProperty.php",
            "line": 24,
            "function": "getIdentifier",
            "class": "ProxyManager\\Generator\\Util\\IdentifierSuffixer",
            "type": "::"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/ocramius/proxy-manager/src/ProxyManager/ProxyGenerator/RemoteObjectGenerator.php",
            "line": 57,
            "function": "__construct",
            "class": "ProxyManager\\ProxyGenerator\\RemoteObject\\PropertyGenerator\\AdapterProperty",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/ocramius/proxy-manager/src/ProxyManager/Factory/AbstractBaseFactory.php",
            "line": 115,
            "function": "generate",
            "class": "ProxyManager\\ProxyGenerator\\RemoteObjectGenerator",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/ocramius/proxy-manager/src/ProxyManager/Factory/AbstractBaseFactory.php",
            "line": 79,
            "function": "generateProxyClass",
            "class": "ProxyManager\\Factory\\AbstractBaseFactory",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/ocramius/proxy-manager/src/ProxyManager/Factory/RemoteObjectFactory.php",
            "line": 60,
            "function": "generateProxy",
            "class": "ProxyManager\\Factory\\AbstractBaseFactory",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/app/Models/Proxies/Remotes/Antifraude/Repositories/AntifraudeRepository.php",
            "line": 47,
            "function": "createProxy",
            "class": "ProxyManager\\Factory\\RemoteObjectFactory",
            "type": "->"
        },
        {
            "function": "__construct",
            "class": "App\\Models\\Proxies\\Remotes\\Antifraude\\Repositories\\AntifraudeRepository",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 880,
            "function": "newInstanceArgs",
            "class": "ReflectionClass",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 283,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 832,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 717,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 841,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 655,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 826,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 990,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 910,
            "function": "resolveClass",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 871,
            "function": "resolveDependencies",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 717,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 841,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Container/Container.php",
            "line": 655,
            "function": "resolve",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 826,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 268,
            "function": "make",
            "class": "Illuminate\\Foundation\\Application",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 1019,
            "function": "getController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 980,
            "function": "controllerMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 708,
            "function": "gatherMiddleware",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 688,
            "function": "gatherRouteMiddleware",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 672,
            "function": "runRouteWithinStack",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 636,
            "function": "runRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 625,
            "function": "dispatchToRoute",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 166,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\Router",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 128,
            "function": "Illuminate\\Foundation\\Http\\{closure}",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/fideloper/proxy/src/TrustProxies.php",
            "line": 57,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Fideloper\\Proxy\\TrustProxies",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 40,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\TrimStrings",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 86,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 167,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 103,
            "function": "Illuminate\\Pipeline\\{closure}",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 141,
            "function": "then",
            "class": "Illuminate\\Pipeline\\Pipeline",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 110,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/public/index.php",
            "line": 60,
            "function": "handle",
            "class": "Illuminate\\Foundation\\Http\\Kernel",
            "type": "->"
        },
        {
            "file": "/home/aleoncre/Projects/api-rc-360/src/server.php",
            "line": 21,
            "function": "require_once"
        }
    ]
}

Problem is ProxyManager\Generator\Util\IdentifierSuffixer call to GetRawAllData() in loadBaseHashSalt() method.

private static function loadBaseHashSalt(): string
{
    return sha1(serialize(InstalledVersions::getAllRawData()));
}

If u open Composer\InstalledVersions and find by this function name, getAllRawData() doesn't exits. To solve this problem for composer > 2.0 only need change getAllRawData() for getRawData()

I think best solution is make if control like this:

if (InstalledVersions::getVersion() >= 2) {
    return sha1(serialize(InstalledVersions::getRawData()));
} else {
    return sha1(serialize(InstalledVersions::getAllRawData()));
}

Duplicate of #704

See also #700 (comment)

Please do upgrade to composer/composer:2.0.14 or newer ASAP, as there is a high severity vulnerability affecting composer/composer:<2.0.13 ( GHSA-h5h8-pc6h-jvvx )