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..c4e8298 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": [
@@ -1497,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"
@@ -1520,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"
},
@@ -1564,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": [
{
@@ -1572,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",
@@ -1677,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": {
@@ -1710,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",
@@ -1721,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",
@@ -1788,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": {
@@ -1840,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",
@@ -1913,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": [
{
@@ -1929,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"
@@ -1957,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",
@@ -1996,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": [
{
@@ -2012,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",
@@ -2095,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": {
@@ -2137,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": [
{
@@ -2153,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": {
@@ -2198,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": [
{
@@ -2214,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": {
@@ -2239,7 +2246,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.22-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2277,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": [
{
@@ -2293,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.22.1",
+ "version": "v1.23.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
+ "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6"
},
"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/9174a3d80210dca8daa7f31fec659150bbeabfc6",
+ "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6",
"shasum": ""
},
"require": {
@@ -2318,7 +2325,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.22-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2357,7 +2364,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1"
},
"funding": [
{
@@ -2373,20 +2380,20 @@
"type": "tidelift"
}
],
- "time": "2021-01-22T09:19:47+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": {
@@ -2395,7 +2402,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.22-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2436,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": [
{
@@ -2452,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": {
@@ -2474,7 +2481,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.22-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -2519,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": [
{
@@ -2535,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": {
@@ -2580,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": [
{
@@ -2596,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",
@@ -2679,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": {
@@ -2730,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": [
{
@@ -2746,7 +2754,7 @@
"type": "tidelift"
}
],
- "time": "2021-02-22T15:36:50+00:00"
+ "time": "2021-07-27T16:19:30+00:00"
}
],
"aliases": [],
@@ -2761,5 +2769,5 @@
"platform-overrides": {
"php": "7.2.0"
},
- "plugin-api-version": "2.0.0"
+ "plugin-api-version": "2.1.0"
}
diff --git a/inc/application.class.php b/inc/application.class.php
index 21d44fc..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'];
@@ -490,9 +498,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;
- }
- }
-}
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');