From 24523ba7b799d345f73a120265c5a15265f33136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Fri, 9 Jul 2021 11:36:03 +0200 Subject: [PATCH 1/4] Upgrade Azure connector --- composer.json | 2 +- composer.lock | 99 ++++++++++++------------ inc/application.class.php | 4 +- inc/provider/azure.class.php | 5 -- inc/provider/azure/accesstoken.class.php | 82 -------------------- 5 files changed, 53 insertions(+), 139 deletions(-) delete mode 100644 inc/provider/azure/accesstoken.class.php diff --git a/composer.json b/composer.json index 08661ae..7768dc9 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "require": { "php": "^7.2", "league/oauth2-google": "^3.0", - "thenetworg/oauth2-azure": "^1.4" + "thenetworg/oauth2-azure": "^2.0" }, "require-dev": { "glpi-project/tools": "^0.1" diff --git a/composer.lock b/composer.lock index 0104735..90b5b43 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "60f4ef686c444cf21d2b180a297318ec", + "content-hash": "706e991a47bc688f2649dff83d281fdc", "packages": [ { "name": "firebase/php-jwt", - "version": "v5.2.1", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "f42c9110abe98dd6cfe9053c49bc86acc70b2d23" + "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/f42c9110abe98dd6cfe9053c49bc86acc70b2d23", - "reference": "f42c9110abe98dd6cfe9053c49bc86acc70b2d23", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d2113d9b2e0e349796e72d2a63cf9319100382d2", + "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2", "shasum": "" }, "require": { @@ -26,6 +26,9 @@ "require-dev": { "phpunit/phpunit": ">=4.8 <=9" }, + "suggest": { + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, "type": "library", "autoload": { "psr-4": { @@ -56,9 +59,9 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v5.2.1" + "source": "https://github.com/firebase/php-jwt/tree/v5.4.0" }, - "time": "2021-02-12T00:02:00+00:00" + "time": "2021-06-23T19:00:23+00:00" }, { "name": "guzzlehttp/guzzle", @@ -188,16 +191,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.1", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" + "reference": "dc960a912984efb74d0a90222870c72c87f10c91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91", "shasum": "" }, "require": { @@ -257,9 +260,9 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.1" + "source": "https://github.com/guzzle/psr7/tree/1.8.2" }, - "time": "2021-03-21T16:25:00+00:00" + "time": "2021-04-26T09:17:50+00:00" }, { "name": "league/oauth2-client", @@ -535,16 +538,16 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" + "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483", - "reference": "2d63434d922daf7da8dd863e7907e67ee3031483", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/65bd267525e82759e7d8c4e8ceea44f398838e65", + "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65", "shasum": "" }, "require": { @@ -558,7 +561,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -602,7 +605,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.23.0" }, "funding": [ { @@ -618,20 +621,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:27:20+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", "shasum": "" }, "require": { @@ -643,7 +646,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -686,7 +689,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" }, "funding": [ { @@ -702,20 +705,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", "shasum": "" }, "require": { @@ -724,7 +727,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -762,7 +765,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" }, "funding": [ { @@ -778,26 +781,26 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-05-27T09:17:38+00:00" }, { "name": "thenetworg/oauth2-azure", - "version": "v1.4.2", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/TheNetworg/oauth2-azure.git", - "reference": "1bd78900f8048c9493b6f27a2e4409ee62a5718a" + "reference": "2649422a0dc74af32d21d9d738d37abcd5b03998" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheNetworg/oauth2-azure/zipball/1bd78900f8048c9493b6f27a2e4409ee62a5718a", - "reference": "1bd78900f8048c9493b6f27a2e4409ee62a5718a", + "url": "https://api.github.com/repos/TheNetworg/oauth2-azure/zipball/2649422a0dc74af32d21d9d738d37abcd5b03998", + "reference": "2649422a0dc74af32d21d9d738d37abcd5b03998", "shasum": "" }, "require": { "firebase/php-jwt": "~3.0||~4.0||~5.0", "league/oauth2-client": "~2.0", - "php": "^5.6|^7.0" + "php": "^5.6|^7.0|^8.0" }, "type": "library", "autoload": { @@ -831,9 +834,9 @@ ], "support": { "issues": "https://github.com/TheNetworg/oauth2-azure/issues", - "source": "https://github.com/TheNetworg/oauth2-azure/tree/master" + "source": "https://github.com/TheNetworg/oauth2-azure/tree/v2.0.1" }, - "time": "2019-01-23T18:20:31+00:00" + "time": "2021-01-11T12:20:12+00:00" } ], "packages-dev": [ @@ -2297,16 +2300,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", + "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", "shasum": "" }, "require": { @@ -2318,7 +2321,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2357,7 +2360,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" }, "funding": [ { @@ -2373,7 +2376,7 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:27:20+00:00" }, { "name": "symfony/polyfill-php73", diff --git a/inc/application.class.php b/inc/application.class.php index 21d44fc..85a15c7 100644 --- a/inc/application.class.php +++ b/inc/application.class.php @@ -490,9 +490,7 @@ public function getProvider(): ?AbstractProvider { // Specific parameters switch ($this->fields['provider']) { case Azure::class: - $params['authWithResource'] = false; - $params['pathAuthorize'] = '/oauth2/v2.0/authorize'; - $params['pathToken'] = '/oauth2/v2.0/token'; + $params['defaultEndPointVersion'] = '2.0'; if (!empty($this->fields['tenant_id'])) { $params['tenant'] = $this->fields['tenant_id']; } diff --git a/inc/provider/azure.class.php b/inc/provider/azure.class.php index af55bcd..5fa32a7 100644 --- a/inc/provider/azure.class.php +++ b/inc/provider/azure.class.php @@ -27,7 +27,6 @@ namespace GlpiPlugin\Oauthimap\Provider; use GlpiPlugin\Oauthimap\Oauth\OwnerDetails; -use League\OAuth2\Client\Grant\AbstractGrant; use League\OAuth2\Client\Token\AccessToken; class Azure extends \TheNetworg\OAuth2\Client\Provider\Azure implements ProviderInterface { @@ -40,10 +39,6 @@ public static function getIcon(): string { return 'fa-windows'; } - protected function createAccessToken(array $response, AbstractGrant $grant) { - return new \GlpiPlugin\Oauthimap\Provider\Azure\AccessToken($response, $this); - } - public function getOwnerDetails(AccessToken $token): ?OwnerDetails { /* @var \TheNetworg\OAuth2\Client\Provider\AzureResourceOwner $owner */ $owner = $this->getResourceOwner($token); diff --git a/inc/provider/azure/accesstoken.class.php b/inc/provider/azure/accesstoken.class.php deleted file mode 100644 index e6f09a0..0000000 --- a/inc/provider/azure/accesstoken.class.php +++ /dev/null @@ -1,82 +0,0 @@ -. - -------------------------------------------------------------------------- - */ - -namespace GlpiPlugin\Oauthimap\Provider\Azure; - -use Firebase\JWT\JWT; - -/** - * Redefine Azure access token parsing to prevent "Invalid token issuer!" issue due to - * "https://sts.windows.net/3c2ae83b-7e79-4bc8-8d80-5baf0f272030/" in issuer value. - */ -class AccessToken extends \TheNetworg\OAuth2\Client\Token\AccessToken { - - public function __construct(array $options, $provider) { - \League\OAuth2\Client\Token\AccessToken::__construct($options); - - if (!empty($options['id_token'])) { - $this->idToken = $options['id_token']; - - $keys = $provider->getJwtVerificationKeys(); - $idTokenClaims = null; - try { - $tks = explode('.', $this->idToken); - // Check if the id_token contains signature - if (3 == count($tks) && !empty($tks[2])) { - $idTokenClaims = (array)JWT::decode($this->idToken, $keys, ['RS256']); - } else { - // The id_token is unsigned (coming from v1.0 endpoint) - https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx - - // Since idToken is not signed, we just do OAuth2 flow without validating the id_token - // // Validate the access_token signature first by parsing it as JWT into claims - // $accessTokenClaims = (array)JWT::decode($options['access_token'], $keys, ['RS256']); - // Then parse the idToken claims only without validating the signature - $idTokenClaims = (array)JWT::jsonDecode(JWT::urlsafeB64Decode($tks[1])); - } - } catch (\Exception $e) { - throw new \RuntimeException('Unable to parse the id_token!'); - } - if ($provider->getClientId() != $idTokenClaims['aud']) { - throw new \RuntimeException('The audience is invalid!'); - } - if ($idTokenClaims['nbf'] > time() || $idTokenClaims['exp'] < time()) { - // Additional validation is being performed in firebase/JWT itself - throw new \RuntimeException('The id_token is invalid!'); - } - - if ('common' == $provider->tenant) { - $provider->tenant = $idTokenClaims['tid']; - } - - $tenant = $provider->getTenantDetails($provider->tenant); - if (!preg_match('/' . preg_quote('/' . $idTokenClaims['tid'] . '/', '/') . '/', $tenant['issuer'])) { - throw new \RuntimeException('Invalid token issuer!'); - } - - $this->idTokenClaims = $idTokenClaims; - } - } -} From c997bef7fb330cf8b0407fc7da141277da3cf553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Fri, 9 Jul 2021 11:51:12 +0200 Subject: [PATCH 2/4] Prompt for account selection --- inc/application.class.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/inc/application.class.php b/inc/application.class.php index 85a15c7..61c9d02 100644 --- a/inc/application.class.php +++ b/inc/application.class.php @@ -423,11 +423,19 @@ public function redirectToAuthorizationUrl(?callable $callback_callable = null, $provider = $this->getProvider(); - $auth_url = $provider->getAuthorizationUrl( - [ - 'scope' => self::getProviderScopes($this->fields['provider']) - ] - ); + $options = [ + 'scope' => self::getProviderScopes($this->fields['provider']) + ]; + switch ($this->fields['provider']) { + case Azure::class: + $options['prompt'] = 'login'; + break; + case Google::class: + $options['prompt'] = 'select_account'; + break; + } + + $auth_url = $provider->getAuthorizationUrl($options); $_SESSION['oauth2state'] = $provider->getState(); $_SESSION[$this->getForeignKeyField()] = $this->fields['id']; From de00a341f41694c74f92529e0bc5746472db070b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Thu, 5 Aug 2021 09:42:48 +0200 Subject: [PATCH 3/4] Update build dependencies --- composer.lock | 191 ++++++++++++++++++++++++++------------------------ 1 file changed, 98 insertions(+), 93 deletions(-) diff --git a/composer.lock b/composer.lock index 90b5b43..c4e8298 100644 --- a/composer.lock +++ b/composer.lock @@ -1500,21 +1500,21 @@ }, { "name": "league/container", - "version": "3.3.5", + "version": "3.4.1", "source": { "type": "git", "url": "https://github.com/thephpleague/container.git", - "reference": "048ab87810f508dbedbcb7ae941b606eb8ee353b" + "reference": "84ecbc2dbecc31bd23faf759a0e329ee49abddbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/container/zipball/048ab87810f508dbedbcb7ae941b606eb8ee353b", - "reference": "048ab87810f508dbedbcb7ae941b606eb8ee353b", + "url": "https://api.github.com/repos/thephpleague/container/zipball/84ecbc2dbecc31bd23faf759a0e329ee49abddbd", + "reference": "84ecbc2dbecc31bd23faf759a0e329ee49abddbd", "shasum": "" }, "require": { "php": "^7.0 || ^8.0", - "psr/container": "^1.0.0 || ^2.0.0" + "psr/container": "^1.0.0" }, "provide": { "psr/container-implementation": "^1.0" @@ -1523,8 +1523,8 @@ "orno/di": "~2.0" }, "require-dev": { - "phpunit/phpunit": "^6.0", - "roave/security-advisories": "dev-master", + "phpunit/phpunit": "^6.0 || ^7.0", + "roave/security-advisories": "dev-latest", "scrutinizer/ocular": "^1.8", "squizlabs/php_codesniffer": "^3.5" }, @@ -1567,7 +1567,7 @@ ], "support": { "issues": "https://github.com/thephpleague/container/issues", - "source": "https://github.com/thephpleague/container/tree/3.3.5" + "source": "https://github.com/thephpleague/container/tree/3.4.1" }, "funding": [ { @@ -1575,7 +1575,7 @@ "type": "github" } ], - "time": "2021-03-16T09:42:56+00:00" + "time": "2021-07-09T08:23:52+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -1680,16 +1680,16 @@ }, { "name": "psr/log", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { @@ -1713,7 +1713,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -1724,9 +1724,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.3" + "source": "https://github.com/php-fig/log/tree/1.1.4" }, - "time": "2020-03-23T09:12:05+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { "name": "slevomat/coding-standard", @@ -1791,16 +1791,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.8", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" + "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", - "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625", + "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625", "shasum": "" }, "require": { @@ -1843,40 +1843,41 @@ "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2020-10-23T02:01:07+00:00" + "time": "2021-04-09T00:54:41+00:00" }, { "name": "symfony/console", - "version": "v4.4.20", + "version": "v4.4.29", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c98349bda966c70d6c08b4cd8658377c94166492" + "reference": "8baf0bbcfddfde7d7225ae8e04705cfd1081cd7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c98349bda966c70d6c08b4cd8658377c94166492", - "reference": "c98349bda966c70d6c08b4cd8658377c94166492", + "url": "https://api.github.com/repos/symfony/console/zipball/8baf0bbcfddfde7d7225ae8e04705cfd1081cd7b", + "reference": "8baf0bbcfddfde7d7225ae8e04705cfd1081cd7b", "shasum": "" }, "require": { "php": ">=7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<3.4", "symfony/event-dispatcher": "<4.3|>=5", "symfony/lock": "<4.4", "symfony/process": "<3.3" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/event-dispatcher": "^4.3", @@ -1916,7 +1917,7 @@ "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/console/tree/v4.4.20" + "source": "https://github.com/symfony/console/tree/v4.4.29" }, "funding": [ { @@ -1932,25 +1933,26 @@ "type": "tidelift" } ], - "time": "2021-02-22T18:44:15+00:00" + "time": "2021-07-27T19:04:53+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.20", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" + "reference": "958a128b184fcf0ba45ec90c0e88554c9327c2e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/958a128b184fcf0ba45ec90c0e88554c9327c2e9", + "reference": "958a128b184fcf0ba45ec90c0e88554c9327c2e9", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" }, "conflict": { "symfony/dependency-injection": "<3.4" @@ -1960,7 +1962,7 @@ "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2|^3", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/error-handler": "~3.4|~4.4", @@ -1999,7 +2001,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.20" + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.27" }, "funding": [ { @@ -2015,7 +2017,7 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -2098,21 +2100,22 @@ }, { "name": "symfony/filesystem", - "version": "v4.4.20", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "715e7a531bdae109a828f9e91629e5b3b2926beb" + "reference": "517fb795794faf29086a77d99eb8f35e457837a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/715e7a531bdae109a828f9e91629e5b3b2926beb", - "reference": "715e7a531bdae109a828f9e91629e5b3b2926beb", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/517fb795794faf29086a77d99eb8f35e457837a7", + "reference": "517fb795794faf29086a77d99eb8f35e457837a7", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/polyfill-ctype": "~1.8" + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -2140,7 +2143,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v4.4.20" + "source": "https://github.com/symfony/filesystem/tree/v4.4.27" }, "funding": [ { @@ -2156,24 +2159,25 @@ "type": "tidelift" } ], - "time": "2021-02-11T19:34:41+00:00" + "time": "2021-07-21T12:19:41+00:00" }, { "name": "symfony/finder", - "version": "v4.4.20", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6" + "reference": "42414d7ac96fc2880a783b872185789dea0d4262" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/2543795ab1570df588b9bbd31e1a2bd7037b94f6", - "reference": "2543795ab1570df588b9bbd31e1a2bd7037b94f6", + "url": "https://api.github.com/repos/symfony/finder/zipball/42414d7ac96fc2880a783b872185789dea0d4262", + "reference": "42414d7ac96fc2880a783b872185789dea0d4262", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -2201,7 +2205,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v4.4.20" + "source": "https://github.com/symfony/finder/tree/v4.4.27" }, "funding": [ { @@ -2217,20 +2221,20 @@ "type": "tidelift" } ], - "time": "2021-02-12T10:48:09+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { @@ -2242,7 +2246,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2280,7 +2284,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" }, "funding": [ { @@ -2296,20 +2300,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "shasum": "" }, "require": { @@ -2360,7 +2364,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" }, "funding": [ { @@ -2376,20 +2380,20 @@ "type": "tidelift" } ], - "time": "2021-05-27T09:27:20+00:00" + "time": "2021-05-27T12:26:48+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", + "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", "shasum": "" }, "require": { @@ -2398,7 +2402,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2439,7 +2443,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" }, "funding": [ { @@ -2455,20 +2459,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", "shasum": "" }, "require": { @@ -2477,7 +2481,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2522,7 +2526,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" }, "funding": [ { @@ -2538,24 +2542,25 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-07-28T13:41:28+00:00" }, { "name": "symfony/process", - "version": "v4.4.20", + "version": "v4.4.27", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a" + "reference": "0b7dc5599ac4aa6d7b936c8f7d10abae64f6cf7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a", + "url": "https://api.github.com/repos/symfony/process/zipball/0b7dc5599ac4aa6d7b936c8f7d10abae64f6cf7f", + "reference": "0b7dc5599ac4aa6d7b936c8f7d10abae64f6cf7f", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -2583,7 +2588,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v4.4.20" + "source": "https://github.com/symfony/process/tree/v4.4.27" }, "funding": [ { @@ -2599,7 +2604,7 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-07-23T15:41:52+00:00" }, { "name": "symfony/service-contracts", @@ -2682,16 +2687,16 @@ }, { "name": "symfony/yaml", - "version": "v4.4.20", + "version": "v4.4.29", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "29e61305e1c79d25f71060903982ead8f533e267" + "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/29e61305e1c79d25f71060903982ead8f533e267", - "reference": "29e61305e1c79d25f71060903982ead8f533e267", + "url": "https://api.github.com/repos/symfony/yaml/zipball/3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", + "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", "shasum": "" }, "require": { @@ -2733,7 +2738,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.20" + "source": "https://github.com/symfony/yaml/tree/v4.4.29" }, "funding": [ { @@ -2749,7 +2754,7 @@ "type": "tidelift" } ], - "time": "2021-02-22T15:36:50+00:00" + "time": "2021-07-27T16:19:30+00:00" } ], "aliases": [], @@ -2764,5 +2769,5 @@ "platform-overrides": { "php": "7.2.0" }, - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } From 39e7e956e658d6bdfa7cc73914e781ddc6c8c9f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Anne?= Date: Thu, 5 Aug 2021 09:44:54 +0200 Subject: [PATCH 4/4] Add 1.2.0 version definition --- oauthimap.xml | 5 +++++ setup.php | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/oauthimap.xml b/oauthimap.xml index 63f06d7..e00d159 100644 --- a/oauthimap.xml +++ b/oauthimap.xml @@ -27,6 +27,11 @@ It permits emails fetching from G Suite and Azure AD mailboxes. TECLIB' + + 1.2.0 + ~9.5.0 + https://github.com/pluginsGLPI/oauthimap/releases/download/1.2.0/glpi-oauthimap-1.2.0.tar.bz2 + 1.1.0 ~9.5.0 diff --git a/setup.php b/setup.php index 00b96c4..4e5d45b 100644 --- a/setup.php +++ b/setup.php @@ -24,7 +24,7 @@ -------------------------------------------------------------------------- */ -define('PLUGIN_OAUTHIMAP_VERSION', '1.1.0'); +define('PLUGIN_OAUTHIMAP_VERSION', '1.2.0'); // Minimal GLPI version, inclusive define('PLUGIN_OAUTHIMAP_MIN_GLPI', '9.5');