Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • perun/perun-proxyidp/v1/simplesamlphp-module-cesnet
1 result
Show changes
Commits on Source (12)
# [4.2.0](https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-cesnet/compare/v4.1.1...v4.2.0) (2023-06-13)
### Features
* filters for einfra eligibility ([f660efa](https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-cesnet/commit/f660efa5ab8cb2010f13a50b2efb72e09c15037a))
## [4.1.1](https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-cesnet/compare/v4.1.0...v4.1.1) (2023-02-28) ## [4.1.1](https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-cesnet/compare/v4.1.0...v4.1.1) (2023-02-28)
......
...@@ -14,6 +14,8 @@ Any change that significantly changes behavior in a backward-incompatible way or ...@@ -14,6 +14,8 @@ Any change that significantly changes behavior in a backward-incompatible way or
- Auth Process filters: - Auth Process filters:
- computeloa - computeloa
- iscesneteligible - iscesneteligible
- iseinfraczeligible
- iseinfraassured
## Instalation ## Instalation
......
...@@ -17,7 +17,8 @@ ...@@ -17,7 +17,8 @@
"ext-curl": "*" "ext-curl": "*"
}, },
"suggest": { "suggest": {
"cesnet/simplesamlphp-module-privacyidea": "included privacyIDEA template is for this module" "cesnet/simplesamlphp-module-privacyidea": "included privacyIDEA template is for this module",
"ext-yaml": "needed to run IsEinfraCZEligible auth filter"
}, },
"config": { "config": {
"platform": { "platform": {
......
...@@ -68,11 +68,11 @@ ...@@ -68,11 +68,11 @@
}, },
{ {
"name": "cesnet/simplesamlphp-module-authswitcher", "name": "cesnet/simplesamlphp-module-authswitcher",
"version": "v10.7.6", "version": "v11.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-authswitcher.git", "url": "https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-authswitcher.git",
"reference": "0396e916af1db744eb1acf66288eb647a9bf4359" "reference": "292f0c7a8d68317fbe88d9136c2ee6cec1e55b36"
}, },
"require": { "require": {
"ext-curl": "*", "ext-curl": "*",
...@@ -101,18 +101,18 @@ ...@@ -101,18 +101,18 @@
} }
], ],
"description": "A SimpleSAMLphp module for applying 2FA modules to specific users", "description": "A SimpleSAMLphp module for applying 2FA modules to specific users",
"time": "2022-10-25T10:01:48+00:00" "time": "2023-05-31T07:43:33+00:00"
}, },
{ {
"name": "cesnet/simplesamlphp-module-perun", "name": "cesnet/simplesamlphp-module-perun",
"version": "v9.0.8", "version": "v9.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-perun.git", "url": "https://gitlab.ics.muni.cz/perun-proxy-aai/simplesamlphp/simplesamlphp-module-perun.git",
"reference": "38c21199e1f3c685583dd31bacd482a2a22cdd36" "reference": "deb1563adc41736a01a56560b42f5304b44d2501"
}, },
"require": { "require": {
"cesnet/simplesamlphp-module-authswitcher": "^10.6", "cesnet/simplesamlphp-module-authswitcher": "^10.6 || ^11.0",
"ext-curl": "*", "ext-curl": "*",
"ext-filter": "*", "ext-filter": "*",
"ext-hash": "*", "ext-hash": "*",
...@@ -135,7 +135,8 @@ ...@@ -135,7 +135,8 @@
"web-token/jwt-signature-algorithm-rsa": "^2.2" "web-token/jwt-signature-algorithm-rsa": "^2.2"
}, },
"suggest": { "suggest": {
"cesnet/simplesamlphp-module-privacyidea": "included privacyIDEA template is for this module" "cesnet/simplesamlphp-module-privacyidea": "included privacyIDEA template is for this module",
"ext-mongodb": "Required by IsBanned auth filter."
}, },
"type": "simplesamlphp-module", "type": "simplesamlphp-module",
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
...@@ -153,7 +154,7 @@ ...@@ -153,7 +154,7 @@
"perun", "perun",
"simplesamlphp" "simplesamlphp"
], ],
"time": "2022-12-15T16:24:36+00:00" "time": "2023-06-01T09:42:39+00:00"
}, },
{ {
"name": "fgrosse/phpasn1", "name": "fgrosse/phpasn1",
...@@ -637,16 +638,16 @@ ...@@ -637,16 +638,16 @@
}, },
{ {
"name": "phpmailer/phpmailer", "name": "phpmailer/phpmailer",
"version": "v6.7.1", "version": "v6.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git", "url": "https://github.com/PHPMailer/PHPMailer.git",
"reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55" "reference": "df16b615e371d81fb79e506277faea67a1be18f1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/49cd7ea3d2563f028d7811f06864a53b1f15ff55", "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/df16b615e371d81fb79e506277faea67a1be18f1",
"reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55", "reference": "df16b615e371d81fb79e506277faea67a1be18f1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -705,7 +706,7 @@ ...@@ -705,7 +706,7 @@
"description": "PHPMailer is a full-featured email creation and transfer class for PHP", "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"support": { "support": {
"issues": "https://github.com/PHPMailer/PHPMailer/issues", "issues": "https://github.com/PHPMailer/PHPMailer/issues",
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.7.1" "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.8.0"
}, },
"funding": [ "funding": [
{ {
...@@ -713,20 +714,20 @@ ...@@ -713,20 +714,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2022-12-08T13:30:06+00:00" "time": "2023-03-06T14:43:22+00:00"
}, },
{ {
"name": "phpseclib/phpseclib", "name": "phpseclib/phpseclib",
"version": "3.0.18", "version": "3.0.19",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpseclib/phpseclib.git", "url": "https://github.com/phpseclib/phpseclib.git",
"reference": "f28693d38ba21bb0d9f0c411ee5dae2b178201da" "reference": "cc181005cf548bfd8a4896383bb825d859259f95"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/f28693d38ba21bb0d9f0c411ee5dae2b178201da", "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/cc181005cf548bfd8a4896383bb825d859259f95",
"reference": "f28693d38ba21bb0d9f0c411ee5dae2b178201da", "reference": "cc181005cf548bfd8a4896383bb825d859259f95",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -807,7 +808,7 @@ ...@@ -807,7 +808,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpseclib/phpseclib/issues", "issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.18" "source": "https://github.com/phpseclib/phpseclib/tree/3.0.19"
}, },
"funding": [ "funding": [
{ {
...@@ -823,7 +824,7 @@ ...@@ -823,7 +824,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-12-17T18:26:50+00:00" "time": "2023-03-05T17:13:09+00:00"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
...@@ -974,21 +975,21 @@ ...@@ -974,21 +975,21 @@
}, },
{ {
"name": "psr/http-client", "name": "psr/http-client",
"version": "1.0.1", "version": "1.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-client.git", "url": "https://github.com/php-fig/http-client.git",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.0 || ^8.0", "php": "^7.0 || ^8.0",
"psr/http-message": "^1.0" "psr/http-message": "^1.0 || ^2.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
...@@ -1008,7 +1009,7 @@ ...@@ -1008,7 +1009,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interface for HTTP clients", "description": "Common interface for HTTP clients",
...@@ -1020,27 +1021,27 @@ ...@@ -1020,27 +1021,27 @@
"psr-18" "psr-18"
], ],
"support": { "support": {
"source": "https://github.com/php-fig/http-client/tree/master" "source": "https://github.com/php-fig/http-client/tree/1.0.2"
}, },
"time": "2020-06-29T06:28:15+00:00" "time": "2023-04-10T20:12:12+00:00"
}, },
{ {
"name": "psr/http-factory", "name": "psr/http-factory",
"version": "1.0.1", "version": "1.0.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-factory.git", "url": "https://github.com/php-fig/http-factory.git",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" "reference": "e616d01114759c4c489f93b099585439f795fe35"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", "reference": "e616d01114759c4c489f93b099585439f795fe35",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.0.0", "php": ">=7.0.0",
"psr/http-message": "^1.0" "psr/http-message": "^1.0 || ^2.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
...@@ -1060,7 +1061,7 @@ ...@@ -1060,7 +1061,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interfaces for PSR-7 HTTP message factories", "description": "Common interfaces for PSR-7 HTTP message factories",
...@@ -1075,31 +1076,31 @@ ...@@ -1075,31 +1076,31 @@
"response" "response"
], ],
"support": { "support": {
"source": "https://github.com/php-fig/http-factory/tree/master" "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
}, },
"time": "2019-04-30T12:38:16+00:00" "time": "2023-04-10T20:10:41+00:00"
}, },
{ {
"name": "psr/http-message", "name": "psr/http-message",
"version": "1.0.1", "version": "2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-message.git", "url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0" "php": "^7.2 || ^8.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0.x-dev" "dev-master": "2.0.x-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1114,7 +1115,7 @@ ...@@ -1114,7 +1115,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interface for HTTP messages", "description": "Common interface for HTTP messages",
...@@ -1128,9 +1129,9 @@ ...@@ -1128,9 +1129,9 @@
"response" "response"
], ],
"support": { "support": {
"source": "https://github.com/php-fig/http-message/tree/master" "source": "https://github.com/php-fig/http-message/tree/2.0"
}, },
"time": "2016-08-06T14:39:51+00:00" "time": "2023-04-04T09:54:51+00:00"
}, },
{ {
"name": "psr/log", "name": "psr/log",
...@@ -1323,16 +1324,16 @@ ...@@ -1323,16 +1324,16 @@
}, },
{ {
"name": "simplesamlphp/saml2", "name": "simplesamlphp/saml2",
"version": "v4.6.5", "version": "v4.6.10",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/simplesamlphp/saml2.git", "url": "https://github.com/simplesamlphp/saml2.git",
"reference": "35e4cac48ef97d454d25a92eb24c85cadf96de9d" "reference": "a6c46e8134df2686da9ad44bc9b8f85443c03440"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/35e4cac48ef97d454d25a92eb24c85cadf96de9d", "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/a6c46e8134df2686da9ad44bc9b8f85443c03440",
"reference": "35e4cac48ef97d454d25a92eb24c85cadf96de9d", "reference": "a6c46e8134df2686da9ad44bc9b8f85443c03440",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1375,22 +1376,22 @@ ...@@ -1375,22 +1376,22 @@
"description": "SAML2 PHP library from SimpleSAMLphp", "description": "SAML2 PHP library from SimpleSAMLphp",
"support": { "support": {
"issues": "https://github.com/simplesamlphp/saml2/issues", "issues": "https://github.com/simplesamlphp/saml2/issues",
"source": "https://github.com/simplesamlphp/saml2/tree/v4.6.5" "source": "https://github.com/simplesamlphp/saml2/tree/v4.6.10"
}, },
"time": "2022-11-23T12:50:43+00:00" "time": "2023-05-31T16:03:51+00:00"
}, },
{ {
"name": "simplesamlphp/simplesamlphp", "name": "simplesamlphp/simplesamlphp",
"version": "v1.19.7", "version": "1.19.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/simplesamlphp/simplesamlphp.git", "url": "https://github.com/simplesamlphp/simplesamlphp.git",
"reference": "f62565d62e0d4e5f105008608faa96949acf854b" "reference": "a69141a45ad41b3b48f55535bafc9cd538a35b74"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/simplesamlphp/simplesamlphp/zipball/f62565d62e0d4e5f105008608faa96949acf854b", "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp/zipball/a69141a45ad41b3b48f55535bafc9cd538a35b74",
"reference": "f62565d62e0d4e5f105008608faa96949acf854b", "reference": "a69141a45ad41b3b48f55535bafc9cd538a35b74",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1509,7 +1510,7 @@ ...@@ -1509,7 +1510,7 @@
"issues": "https://github.com/simplesamlphp/simplesamlphp/issues", "issues": "https://github.com/simplesamlphp/simplesamlphp/issues",
"source": "https://github.com/simplesamlphp/simplesamlphp" "source": "https://github.com/simplesamlphp/simplesamlphp"
}, },
"time": "2022-12-05T19:46:47+00:00" "time": "2023-03-02T11:44:45+00:00"
}, },
{ {
"name": "simplesamlphp/simplesamlphp-module-adfs", "name": "simplesamlphp/simplesamlphp-module-adfs",
...@@ -3086,16 +3087,16 @@ ...@@ -3086,16 +3087,16 @@
}, },
{ {
"name": "symfony/cache", "name": "symfony/cache",
"version": "v5.4.19", "version": "v5.4.23",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/cache.git", "url": "https://github.com/symfony/cache.git",
"reference": "e9147c89fdfdc5d5ef798bb7193f23726ad609f5" "reference": "983c79ff28612cdfd66d8e44e1a06e5afc87e107"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/e9147c89fdfdc5d5ef798bb7193f23726ad609f5", "url": "https://api.github.com/repos/symfony/cache/zipball/983c79ff28612cdfd66d8e44e1a06e5afc87e107",
"reference": "e9147c89fdfdc5d5ef798bb7193f23726ad609f5", "reference": "983c79ff28612cdfd66d8e44e1a06e5afc87e107",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3163,7 +3164,7 @@ ...@@ -3163,7 +3164,7 @@
"psr6" "psr6"
], ],
"support": { "support": {
"source": "https://github.com/symfony/cache/tree/v5.4.19" "source": "https://github.com/symfony/cache/tree/v5.4.23"
}, },
"funding": [ "funding": [
{ {
...@@ -3179,7 +3180,7 @@ ...@@ -3179,7 +3180,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-19T09:49:58+00:00" "time": "2023-04-21T15:38:51+00:00"
}, },
{ {
"name": "symfony/cache-contracts", "name": "symfony/cache-contracts",
...@@ -3262,16 +3263,16 @@ ...@@ -3262,16 +3263,16 @@
}, },
{ {
"name": "symfony/config", "name": "symfony/config",
"version": "v5.4.19", "version": "v5.4.21",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/config.git", "url": "https://github.com/symfony/config.git",
"reference": "9bd60843443cda9638efdca7c41eb82ed0026179" "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/9bd60843443cda9638efdca7c41eb82ed0026179", "url": "https://api.github.com/repos/symfony/config/zipball/2a6b1111d038adfa15d52c0871e540f3b352d1e4",
"reference": "9bd60843443cda9638efdca7c41eb82ed0026179", "reference": "2a6b1111d038adfa15d52c0871e540f3b352d1e4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3321,7 +3322,7 @@ ...@@ -3321,7 +3322,7 @@
"description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/config/tree/v5.4.19" "source": "https://github.com/symfony/config/tree/v5.4.21"
}, },
"funding": [ "funding": [
{ {
...@@ -3337,20 +3338,20 @@ ...@@ -3337,20 +3338,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-08T13:23:55+00:00" "time": "2023-02-14T08:03:56+00:00"
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v5.4.19", "version": "v5.4.24",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "dccb8d251a9017d5994c988b034d3e18aaabf740" "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/dccb8d251a9017d5994c988b034d3e18aaabf740", "url": "https://api.github.com/repos/symfony/console/zipball/560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8",
"reference": "dccb8d251a9017d5994c988b034d3e18aaabf740", "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3415,12 +3416,12 @@ ...@@ -3415,12 +3416,12 @@
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"keywords": [ "keywords": [
"cli", "cli",
"command line", "command-line",
"console", "console",
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v5.4.19" "source": "https://github.com/symfony/console/tree/v5.4.24"
}, },
"funding": [ "funding": [
{ {
...@@ -3436,20 +3437,20 @@ ...@@ -3436,20 +3437,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-01T08:32:19+00:00" "time": "2023-05-26T05:13:16+00:00"
}, },
{ {
"name": "symfony/dependency-injection", "name": "symfony/dependency-injection",
"version": "v5.4.20", "version": "v5.4.24",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/dependency-injection.git", "url": "https://github.com/symfony/dependency-injection.git",
"reference": "8185ed0df129005a26715902f1a53bad0fe67102" "reference": "4645e032d0963fb614969398ca28e47605b1a7da"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8185ed0df129005a26715902f1a53bad0fe67102", "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4645e032d0963fb614969398ca28e47605b1a7da",
"reference": "8185ed0df129005a26715902f1a53bad0fe67102", "reference": "4645e032d0963fb614969398ca28e47605b1a7da",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3509,7 +3510,7 @@ ...@@ -3509,7 +3510,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application", "description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/dependency-injection/tree/v5.4.20" "source": "https://github.com/symfony/dependency-injection/tree/v5.4.24"
}, },
"funding": [ "funding": [
{ {
...@@ -3525,7 +3526,7 @@ ...@@ -3525,7 +3526,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-27T11:08:11+00:00" "time": "2023-05-05T14:42:55+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
...@@ -3596,16 +3597,16 @@ ...@@ -3596,16 +3597,16 @@
}, },
{ {
"name": "symfony/error-handler", "name": "symfony/error-handler",
"version": "v5.4.19", "version": "v5.4.24",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/error-handler.git", "url": "https://github.com/symfony/error-handler.git",
"reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822" "reference": "c1b9be3b8a6f60f720bec28c4ffb6fb5b00a8946"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/438ef3e5e6481244785da3ce8cf8f4e74e7f2822", "url": "https://api.github.com/repos/symfony/error-handler/zipball/c1b9be3b8a6f60f720bec28c4ffb6fb5b00a8946",
"reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822", "reference": "c1b9be3b8a6f60f720bec28c4ffb6fb5b00a8946",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3647,7 +3648,7 @@ ...@@ -3647,7 +3648,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code", "description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/error-handler/tree/v5.4.19" "source": "https://github.com/symfony/error-handler/tree/v5.4.24"
}, },
"funding": [ "funding": [
{ {
...@@ -3663,20 +3664,20 @@ ...@@ -3663,20 +3664,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-01T08:32:19+00:00" "time": "2023-05-02T16:13:31+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v5.4.19", "version": "v5.4.22",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "abf49cc084c087d94b4cb939c3f3672971784e0c" "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abf49cc084c087d94b4cb939c3f3672971784e0c", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1df20e45d56da29a4b1d8259dd6e950acbf1b13f",
"reference": "abf49cc084c087d94b4cb939c3f3672971784e0c", "reference": "1df20e45d56da29a4b1d8259dd6e950acbf1b13f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3732,7 +3733,7 @@ ...@@ -3732,7 +3733,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.19" "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.22"
}, },
"funding": [ "funding": [
{ {
...@@ -3748,7 +3749,7 @@ ...@@ -3748,7 +3749,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-01T08:32:19+00:00" "time": "2023-03-17T11:31:58+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
...@@ -3831,16 +3832,16 @@ ...@@ -3831,16 +3832,16 @@
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v5.4.19", "version": "v5.4.23",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "648bfaca6a494f3e22378123bcee2894045dc9d8" "reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/648bfaca6a494f3e22378123bcee2894045dc9d8", "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5",
"reference": "648bfaca6a494f3e22378123bcee2894045dc9d8", "reference": "b2f79d86cd9e7de0fff6d03baa80eaed7a5f38b5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3875,7 +3876,7 @@ ...@@ -3875,7 +3876,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v5.4.19" "source": "https://github.com/symfony/filesystem/tree/v5.4.23"
}, },
"funding": [ "funding": [
{ {
...@@ -3891,20 +3892,20 @@ ...@@ -3891,20 +3892,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-14T19:14:44+00:00" "time": "2023-03-02T11:38:35+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v5.4.19", "version": "v5.4.21",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "6071aebf810ad13fe8200c224f36103abb37cf1f" "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/6071aebf810ad13fe8200c224f36103abb37cf1f", "url": "https://api.github.com/repos/symfony/finder/zipball/078e9a5e1871fcfe6a5ce421b539344c21afef19",
"reference": "6071aebf810ad13fe8200c224f36103abb37cf1f", "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3938,7 +3939,7 @@ ...@@ -3938,7 +3939,7 @@
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/finder/tree/v5.4.19" "source": "https://github.com/symfony/finder/tree/v5.4.21"
}, },
"funding": [ "funding": [
{ {
...@@ -3954,20 +3955,20 @@ ...@@ -3954,20 +3955,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-14T19:14:44+00:00" "time": "2023-02-16T09:33:00+00:00"
}, },
{ {
"name": "symfony/framework-bundle", "name": "symfony/framework-bundle",
"version": "v5.4.19", "version": "v5.4.24",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/framework-bundle.git", "url": "https://github.com/symfony/framework-bundle.git",
"reference": "a208ee578000f9dedcb50a9784ec7ff8706a7bf1" "reference": "c06a56a47817d29318aaace1c655cbde16c998e8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a208ee578000f9dedcb50a9784ec7ff8706a7bf1", "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/c06a56a47817d29318aaace1c655cbde16c998e8",
"reference": "a208ee578000f9dedcb50a9784ec7ff8706a7bf1", "reference": "c06a56a47817d29318aaace1c655cbde16c998e8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3981,7 +3982,7 @@ ...@@ -3981,7 +3982,7 @@
"symfony/event-dispatcher": "^5.1|^6.0", "symfony/event-dispatcher": "^5.1|^6.0",
"symfony/filesystem": "^4.4|^5.0|^6.0", "symfony/filesystem": "^4.4|^5.0|^6.0",
"symfony/finder": "^4.4|^5.0|^6.0", "symfony/finder": "^4.4|^5.0|^6.0",
"symfony/http-foundation": "^5.3|^6.0", "symfony/http-foundation": "^5.4.24|^6.2.11",
"symfony/http-kernel": "^5.4|^6.0", "symfony/http-kernel": "^5.4|^6.0",
"symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php80": "^1.16", "symfony/polyfill-php80": "^1.16",
...@@ -3994,7 +3995,6 @@ ...@@ -3994,7 +3995,6 @@
"doctrine/persistence": "<1.3", "doctrine/persistence": "<1.3",
"phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0", "phpdocumentor/type-resolver": "<1.4.0",
"phpunit/phpunit": "<5.4.3",
"symfony/asset": "<5.3", "symfony/asset": "<5.3",
"symfony/console": "<5.2.5", "symfony/console": "<5.2.5",
"symfony/dom-crawler": "<4.4", "symfony/dom-crawler": "<4.4",
...@@ -4089,7 +4089,7 @@ ...@@ -4089,7 +4089,7 @@
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/framework-bundle/tree/v5.4.19" "source": "https://github.com/symfony/framework-bundle/tree/v5.4.24"
}, },
"funding": [ "funding": [
{ {
...@@ -4105,20 +4105,20 @@ ...@@ -4105,20 +4105,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-10T17:40:25+00:00" "time": "2023-05-25T13:05:00+00:00"
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v5.4.20", "version": "v5.4.24",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "d0435363362a47c14e9cf50663cb8ffbf491875a" "reference": "3c59f97f6249ce552a44f01b93bfcbd786a954f5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0435363362a47c14e9cf50663cb8ffbf491875a", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3c59f97f6249ce552a44f01b93bfcbd786a954f5",
"reference": "d0435363362a47c14e9cf50663cb8ffbf491875a", "reference": "3c59f97f6249ce552a44f01b93bfcbd786a954f5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -4165,7 +4165,7 @@ ...@@ -4165,7 +4165,7 @@
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-foundation/tree/v5.4.20" "source": "https://github.com/symfony/http-foundation/tree/v5.4.24"
}, },
"funding": [ "funding": [
{ {
...@@ -4181,20 +4181,20 @@ ...@@ -4181,20 +4181,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-29T11:11:52+00:00" "time": "2023-05-19T07:21:23+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v5.4.20", "version": "v5.4.24",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "aaeec341582d3c160cc9ecfa8b2419ba6c69954e" "reference": "f38b722e1557eb3f487d351b48f5a1279b50e9d1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/aaeec341582d3c160cc9ecfa8b2419ba6c69954e", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f38b722e1557eb3f487d351b48f5a1279b50e9d1",
"reference": "aaeec341582d3c160cc9ecfa8b2419ba6c69954e", "reference": "f38b722e1557eb3f487d351b48f5a1279b50e9d1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -4203,7 +4203,7 @@ ...@@ -4203,7 +4203,7 @@
"symfony/deprecation-contracts": "^2.1|^3", "symfony/deprecation-contracts": "^2.1|^3",
"symfony/error-handler": "^4.4|^5.0|^6.0", "symfony/error-handler": "^4.4|^5.0|^6.0",
"symfony/event-dispatcher": "^5.0|^6.0", "symfony/event-dispatcher": "^5.0|^6.0",
"symfony/http-foundation": "^5.3.7|^6.0", "symfony/http-foundation": "^5.4.21|^6.2.7",
"symfony/polyfill-ctype": "^1.8", "symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-php73": "^1.9", "symfony/polyfill-php73": "^1.9",
"symfony/polyfill-php80": "^1.16" "symfony/polyfill-php80": "^1.16"
...@@ -4277,7 +4277,7 @@ ...@@ -4277,7 +4277,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v5.4.20" "source": "https://github.com/symfony/http-kernel/tree/v5.4.24"
}, },
"funding": [ "funding": [
{ {
...@@ -4293,7 +4293,7 @@ ...@@ -4293,7 +4293,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-02-01T08:18:48+00:00" "time": "2023-05-27T08:06:30+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
...@@ -4944,16 +4944,16 @@ ...@@ -4944,16 +4944,16 @@
}, },
{ {
"name": "symfony/routing", "name": "symfony/routing",
"version": "v5.4.19", "version": "v5.4.22",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/routing.git", "url": "https://github.com/symfony/routing.git",
"reference": "df1b28f37c8e78912213c58ef6ab2f2037bbfdc5" "reference": "c2ac11eb34947999b7c38fb4c835a57306907e6d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/df1b28f37c8e78912213c58ef6ab2f2037bbfdc5", "url": "https://api.github.com/repos/symfony/routing/zipball/c2ac11eb34947999b7c38fb4c835a57306907e6d",
"reference": "df1b28f37c8e78912213c58ef6ab2f2037bbfdc5", "reference": "c2ac11eb34947999b7c38fb4c835a57306907e6d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -5014,7 +5014,7 @@ ...@@ -5014,7 +5014,7 @@
"url" "url"
], ],
"support": { "support": {
"source": "https://github.com/symfony/routing/tree/v5.4.19" "source": "https://github.com/symfony/routing/tree/v5.4.22"
}, },
"funding": [ "funding": [
{ {
...@@ -5030,7 +5030,7 @@ ...@@ -5030,7 +5030,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-01T08:32:19+00:00" "time": "2023-03-14T14:59:20+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
...@@ -5117,16 +5117,16 @@ ...@@ -5117,16 +5117,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v5.4.19", "version": "v5.4.22",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "0a01071610fd861cc160dfb7e2682ceec66064cb" "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/0a01071610fd861cc160dfb7e2682ceec66064cb", "url": "https://api.github.com/repos/symfony/string/zipball/8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
"reference": "0a01071610fd861cc160dfb7e2682ceec66064cb", "reference": "8036a4c76c0dd29e60b6a7cafcacc50cf088ea62",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -5183,7 +5183,7 @@ ...@@ -5183,7 +5183,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v5.4.19" "source": "https://github.com/symfony/string/tree/v5.4.22"
}, },
"funding": [ "funding": [
{ {
...@@ -5199,20 +5199,20 @@ ...@@ -5199,20 +5199,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-01T08:32:19+00:00" "time": "2023-03-14T06:11:53+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v5.4.19", "version": "v5.4.24",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b" "reference": "8e12706bf9c68a2da633f23bfdc15b4dce5970b3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/8e12706bf9c68a2da633f23bfdc15b4dce5970b3",
"reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b", "reference": "8e12706bf9c68a2da633f23bfdc15b4dce5970b3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -5221,7 +5221,6 @@ ...@@ -5221,7 +5221,6 @@
"symfony/polyfill-php80": "^1.16" "symfony/polyfill-php80": "^1.16"
}, },
"conflict": { "conflict": {
"phpunit/phpunit": "<5.4.3",
"symfony/console": "<4.4" "symfony/console": "<4.4"
}, },
"require-dev": { "require-dev": {
...@@ -5272,7 +5271,7 @@ ...@@ -5272,7 +5271,7 @@
"dump" "dump"
], ],
"support": { "support": {
"source": "https://github.com/symfony/var-dumper/tree/v5.4.19" "source": "https://github.com/symfony/var-dumper/tree/v5.4.24"
}, },
"funding": [ "funding": [
{ {
...@@ -5288,20 +5287,20 @@ ...@@ -5288,20 +5287,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-16T10:52:33+00:00" "time": "2023-05-25T13:05:00+00:00"
}, },
{ {
"name": "symfony/var-exporter", "name": "symfony/var-exporter",
"version": "v5.4.19", "version": "v5.4.21",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-exporter.git", "url": "https://github.com/symfony/var-exporter.git",
"reference": "2a1d06fcf2b30829d6c01dae8e6e188424d1f8f6" "reference": "be74908a6942fdd331554b3cec27ff41b45ccad4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/2a1d06fcf2b30829d6c01dae8e6e188424d1f8f6", "url": "https://api.github.com/repos/symfony/var-exporter/zipball/be74908a6942fdd331554b3cec27ff41b45ccad4",
"reference": "2a1d06fcf2b30829d6c01dae8e6e188424d1f8f6", "reference": "be74908a6942fdd331554b3cec27ff41b45ccad4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -5345,7 +5344,7 @@ ...@@ -5345,7 +5344,7 @@
"serialize" "serialize"
], ],
"support": { "support": {
"source": "https://github.com/symfony/var-exporter/tree/v5.4.19" "source": "https://github.com/symfony/var-exporter/tree/v5.4.21"
}, },
"funding": [ "funding": [
{ {
...@@ -5361,20 +5360,20 @@ ...@@ -5361,20 +5360,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-12T16:39:29+00:00" "time": "2023-02-21T19:46:44+00:00"
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v5.4.19", "version": "v5.4.23",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
"reference": "71c05db20cb9b54d381a28255f17580e2b7e36a5" "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/71c05db20cb9b54d381a28255f17580e2b7e36a5", "url": "https://api.github.com/repos/symfony/yaml/zipball/4cd2e3ea301aadd76a4172756296fe552fb45b0b",
"reference": "71c05db20cb9b54d381a28255f17580e2b7e36a5", "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -5420,7 +5419,7 @@ ...@@ -5420,7 +5419,7 @@
"description": "Loads and dumps YAML files", "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/yaml/tree/v5.4.19" "source": "https://github.com/symfony/yaml/tree/v5.4.23"
}, },
"funding": [ "funding": [
{ {
...@@ -5436,7 +5435,7 @@ ...@@ -5436,7 +5435,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-01-10T18:51:14+00:00" "time": "2023-04-23T19:33:36+00:00"
}, },
{ {
"name": "twig/extensions", "name": "twig/extensions",
...@@ -5500,16 +5499,16 @@ ...@@ -5500,16 +5499,16 @@
}, },
{ {
"name": "twig/twig", "name": "twig/twig",
"version": "v2.15.4", "version": "v2.15.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/twigphp/Twig.git", "url": "https://github.com/twigphp/Twig.git",
"reference": "3e059001d6d597dd50ea7c74dd2464b4adea48d3" "reference": "fc02a6af3eeb97c4bf5650debc76c2eda85ac22e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/3e059001d6d597dd50ea7c74dd2464b4adea48d3", "url": "https://api.github.com/repos/twigphp/Twig/zipball/fc02a6af3eeb97c4bf5650debc76c2eda85ac22e",
"reference": "3e059001d6d597dd50ea7c74dd2464b4adea48d3", "reference": "fc02a6af3eeb97c4bf5650debc76c2eda85ac22e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -5564,7 +5563,7 @@ ...@@ -5564,7 +5563,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/twigphp/Twig/issues", "issues": "https://github.com/twigphp/Twig/issues",
"source": "https://github.com/twigphp/Twig/tree/v2.15.4" "source": "https://github.com/twigphp/Twig/tree/v2.15.5"
}, },
"funding": [ "funding": [
{ {
...@@ -5576,7 +5575,7 @@ ...@@ -5576,7 +5575,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-12-27T12:26:20+00:00" "time": "2023-05-03T17:49:41+00:00"
}, },
{ {
"name": "web-token/jwt-checker", "name": "web-token/jwt-checker",
......
...@@ -27,3 +27,40 @@ Example how to configure IsCesnetEligible filter: ...@@ -27,3 +27,40 @@ Example how to configure IsCesnetEligible filter:
'LDAP.attributeName' => 'isCesnetEligible', 'LDAP.attributeName' => 'isCesnetEligible',
], ],
``` ```
## IsEinfraCZEligible
Example how to configure IsEinfraCZEligible filter:
- Configuration file is saml20-idp-hosted.php
- User eligibilites and affiliations should be retrieved before this filter is run
- User ext. sources are not updated as part of this filter
```php
33 => [
'class' => 'cesnet:IsEinfraCZEligible',
'userEligibilityAttrName' => 'session_eligibilities',
'userAffiliationAttrName' => 'externalAffiliation',
'eligibilitiesAttrKey' => 'einfracz',
],
```
## IsEinfraAssured
Example how to configure IsEinfraAssured filter:
- Configuration file is saml20-idp-hosted.php
- Einfracz eligibility should be resolved before this filter is run
- User eligibilities and session eligibilities should be retrieved before this filter is run
- The result values are stored in attributes defined in `userAssuranceAttrNames` as value `assurancePrefix-1y`
```php
34 => [
'class' => 'cesnet:IsEinfraAssured',
'userAssuranceAttrNames' => ['eduPersonAssurance'],
'userEligibilitiesAttrName' => 'eligibilities',
'sessionEligibilitiesAttrName' => 'session_eligibilities'
'eligibilitiesAttrKey' => 'einfracz',
'assurancePrefix' => 'assuranceprefix',
],
```
<?php
declare(strict_types=1);
namespace SimpleSAML\Module\cesnet\Auth\Process;
use SimpleSAML\Auth\ProcessingFilter;
use SimpleSAML\Configuration;
use SimpleSAML\Logger;
use SimpleSAML\Error\Exception;
/**
* Class IsEinfraAssured.
*
* This class puts assurance timestamp as {prefix}-1y representing
* user's einfra eligibility is not older than 1 year.
*/
class IsEinfraAssured extends ProcessingFilter
{
public const LOGGER_PREFIX = 'cesnet:IsEinfraAssured - ';
public const USER_ASSURANCE_ATTRS = 'userAssuranceAttrNames';
public const USER_ELIGIBILITIES_ATTR = 'userEligibilitiesAttrName';
public const SESSION_ELIGIBILITIES_ATTR = 'sessionEligibilitiesAttrName';
public const ELIGIBILITIES_ATTR_KEY = 'eligibilitiesAttrKey';
public const PREFIX = 'assurancePrefix';
private $userEligibilitiesAttr = 'eligibilities';
private $sessionEligibilitiesAttr = 'session_eligibilities';
private $assuranceAttrs = ['eduPersonAssurance'];
private $prefix = 'prefix';
private const SUFFIX = '-1y';
private $eligibilityKey = 'einfracz';
public function __construct($config, $reserved)
{
parent::__construct($config, $reserved);
$config = Configuration::loadFromArray($config);
if ($config === null) {
throw new Exception(
self::LOGGER_PREFIX . ' configuration is missing or invalid!'
);
}
$this->assuranceAttrs = $config->getArray(self::USER_ASSURANCE_ATTRS, $this->assuranceAttrs);
$this->userEligibilitiesAttr = $config->getString(
self::USER_ELIGIBILITIES_ATTR,
$this->userEligibilitiesAttr
);
$this->sessionEligibilitiesAttr = $config->getString(
self::SESSION_ELIGIBILITIES_ATTR,
$this->sessionEligibilitiesAttr
);
$this->prefix = $config->getString(self::PREFIX, $this->prefix);
$this->eligibilityKey = $config->getString(self::ELIGIBILITIES_ATTR_KEY, $this->eligibilityKey);
if (empty($this->assuranceAttrs)) {
throw new Exception(
self::LOGGER_PREFIX . ' empty array detected !'
);
}
}
public function process(&$request)
{
$timestamp = 0;
if (isset($request['Attributes'][$this->sessionEligibilitiesAttr][$this->eligibilityKey])) {
$timestamp = $request['Attributes'][$this->sessionEligibilitiesAttr][$this->eligibilityKey];
} elseif (isset($request['Attributes'][$this->userEligibilitiesAttr][$this->eligibilityKey])) {
$timestamp = $request['Attributes'][$this->userEligibilitiesAttr][$this->eligibilityKey];
}
if ($timestamp > strtotime('-1 year')) {
foreach ($this->assuranceAttrs as $attr) {
$request['Attributes'][$attr][] = $this->prefix . self::SUFFIX;
}
Logger::debug(
self::LOGGER_PREFIX .
'Added assurance timestamp ' . $this->prefix . self::SUFFIX
);
} else {
Logger::debug(
self::LOGGER_PREFIX .
'User is not assured - assurance timestamp not added.'
);
}
}
}
<?php
declare(strict_types=1);
namespace SimpleSAML\Module\cesnet\Auth\Process;
use SimpleSAML\Auth\ProcessingFilter;
use SimpleSAML\Configuration;
use SimpleSAML\Error\Exception;
use SimpleSAML\Logger;
/**
* Class IsEinfraCZEligible.
*
* This class puts the current timestamp to attribute storing user eligibilities,
* when user's affiliations are sufficient to be eligible, which is checked with
* a configuration that is periodically fetched from configured URL.
*/
class IsEinfraCZEligible extends ProcessingFilter
{
public const LOGGER_PREFIX = 'cesnet:IsEinfraCZEligible - ';
public const IDP_ELIGIBLE_AFFILIATIONS_LIST_LINK =
'https://gitlab.ics.muni.cz/perun-proxy-aai/e-infracz_idps_data/-/raw/main/einfra_isacademic/result.yaml';
public const LINK_REFRESH_RATE_MINS = 15; // older file will be refreshed
public const FILE_MAX_AGE_HOURS = 24; // older file won't be considered valid
public const DATA_FILEPATH = '/tmp/einfra_isacademic_eligible.yml'; // where file will be stored and loaded from
public const USER_ELIGIBILITY_ATTR = 'userEligibilityAttrName';
public const USER_AFFILIATIONS_ATTR = 'userAffiliationAttrName';
public const USER_ELIGIBILITY_KEY = 'eligibilitiesAttrKey';
private $userAffiliationAttr = 'externalAffiliation';
private $userEligibilityAttr = 'session_eligibilities';
private $userEligibilityAttrKey = 'einfracz';
public function __construct($config, $reserved)
{
parent::__construct($config, $reserved);
$config = Configuration::loadFromArray($config);
if ($config === null) {
throw new Exception(
self::LOGGER_PREFIX . ' configuration is missing or invalid!'
);
}
$this->userEligibilityAttr = $config->getString(self::USER_ELIGIBILITY_ATTR, $this->userEligibilityAttr);
$this->userAffiliationAttr = $config->getString(self::USER_AFFILIATIONS_ATTR, $this->userAffiliationAttr);
$this->userEligibilityAttrKey = $config->getString(self::USER_ELIGIBILITY_KEY, $this->userEligibilityAttrKey);
}
public function process(&$request)
{
$userScopedAffiliations = [];
if (isset($request['Attributes'][$this->userAffiliationAttr])) {
$userScopedAffiliations
= $request['Attributes'][$this->userAffiliationAttr];
} else {
Logger::error(
self::LOGGER_PREFIX .
'Attribute with name \'' . $this->userAffiliationAttr . '\' was not received from IdP!'
);
}
$isEligible = $this->isEligible($request['saml:sp:IdP'], $userScopedAffiliations);
Logger::debug(
self::LOGGER_PREFIX . 'User is' . ($isEligible ? ' ' : ' not ') . 'eligible'
);
if ($isEligible) {
$request['Attributes'][$this->userEligibilityAttr][$this->userEligibilityAttrKey] = strval(time());
}
Logger::debug(
self::LOGGER_PREFIX . 'Result eligibilities attribute: ' .
json_encode($request['Attributes'][$this->userEligibilityAttr])
);
}
private function isEligible(string $idpEntityId, array $userScopedAffiliations): bool
{
$userAffiliations = array_map(
function ($item) {
return explode("@", $item)[0];
},
$userScopedAffiliations
);
$allowedAffiliations = $this->getAllowedAffiliations($idpEntityId);
$result = array_intersect($userAffiliations, $allowedAffiliations);
Logger::debug(
self::LOGGER_PREFIX .
'Affiliations that make user eligible: ' . implode(",", $result)
);
return !empty($result);
}
private function getAllowedAffiliations(string $idpEntityId): array
{
$allowedAffiliations = [];
$eligibilities = $this->getEligibilityData();
if (array_key_exists($idpEntityId, $eligibilities)) {
$allowedAffiliations = $eligibilities[$idpEntityId];
}
return $allowedAffiliations;
}
private function getEligibilityData(): array
{
$data = 0;
if (file_exists(self::DATA_FILEPATH)) {
$file_age = strtotime(date("F d Y H:i:s.", filectime(self::DATA_FILEPATH)));
if ($file_age < strtotime("-" . self::LINK_REFRESH_RATE_MINS . " minutes")) {
$data = $this->fetchAffiliationData();
}
if (empty($data) and $file_age > strtotime("-" . self::FILE_MAX_AGE_HOURS . " hours")) {
$data = $this->readDataFromCacheFile();
}
} else {
$data = $this->fetchAffiliationData();
}
return $data;
}
private function readDataFromCacheFile(): array
{
try {
$fileSize = filesize(self::DATA_FILEPATH);
$file = fopen(self::DATA_FILEPATH, "r");
$sourceData = fread($file, $fileSize);
fclose($file);
return yaml_parse($sourceData);
} catch (\Exception $exception) {
throw new \Exception(
self::LOGGER_PREFIX . "Cannot read local stored cache file: "
. self::DATA_FILEPATH
);
}
}
private function fetchAffiliationData(): array
{
$sourceData = file_get_contents(self::IDP_ELIGIBLE_AFFILIATIONS_LIST_LINK);
if (!$sourceData) {
Logger::debug(
self::LOGGER_PREFIX . "Cannot download data from " . self::IDP_ELIGIBLE_AFFILIATIONS_LIST_LINK
);
return [];
}
// Store to file
try {
$file = fopen(self::DATA_FILEPATH, "w");
fwrite($file, $sourceData);
fclose($file);
} catch (\Exception $exception) {
Logger::debug(
self::LOGGER_PREFIX . "Cannot store data to file" . self::DATA_FILEPATH
);
}
return yaml_parse($sourceData);
}
}