From e307badce860a22ef6d56ff86a206e3e6ea4e68a Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Tue, 1 Oct 2024 09:00:17 +1000 Subject: [PATCH 01/93] docs: make a link to the release process (#2262) * docs: make a link to the release process * lint the things that do not matter --- docs/simplesamlphp-developer-information.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/simplesamlphp-developer-information.md b/docs/simplesamlphp-developer-information.md index 1d4cd82724..e65baef5e1 100644 --- a/docs/simplesamlphp-developer-information.md +++ b/docs/simplesamlphp-developer-information.md @@ -149,3 +149,8 @@ cd ./node_modules/.bin You will probably want to make a script or alias to the above command and apply it before pushing documentation changes to github. + +## Making a release + +The release process is documented on the wiki +. From 2219e121d4992cc79e2f763d3db433b444badff6 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Thu, 3 Oct 2024 10:08:58 +1000 Subject: [PATCH 02/93] docs: update SP example to use the non string endpoint format (#2263) * docs: update SP example to new non string endpoint format * add the certificate back there --- docs/simplesamlphp-sp.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/simplesamlphp-sp.md b/docs/simplesamlphp-sp.md index d2fe697177..9c47228f43 100644 --- a/docs/simplesamlphp-sp.md +++ b/docs/simplesamlphp-sp.md @@ -90,9 +90,20 @@ metadata file: ```php 'https://example.org/simplesaml/saml2/idp/SSOService.php', - 'SingleLogoutService' => 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php', - 'certificate' => 'example.pem', + 'SingleSignOnService' => [ + [ + 'Location' => ''https://example.org/simplesaml/saml2/idp/SSOService.php', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', + ], + ], + 'SingleLogoutService' => [ + [ + 'Location' => 'https://example.org/simplesaml/saml2/idp/SingleLogoutService.php', + 'ResponseLocation' => 'https://sp.example.org/LogoutResponse', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', + ], + ], + 'certificate' => 'example.pem', ]; ``` From 721d84df5eb32915785b14c4e875ae0cf73fcaf3 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Thu, 3 Oct 2024 10:15:03 +1000 Subject: [PATCH 03/93] docs remove that double instance (#2264) --- docs/simplesamlphp-sp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/simplesamlphp-sp.md b/docs/simplesamlphp-sp.md index 9c47228f43..99b93e2256 100644 --- a/docs/simplesamlphp-sp.md +++ b/docs/simplesamlphp-sp.md @@ -92,7 +92,7 @@ metadata file: $metadata['https://example.org/saml-idp'] = [ 'SingleSignOnService' => [ [ - 'Location' => ''https://example.org/simplesaml/saml2/idp/SSOService.php', + 'Location' => 'https://example.org/simplesaml/saml2/idp/SSOService.php', 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', ], ], From 087f0d411919da1e597ad0972531f6622d4948de Mon Sep 17 00:00:00 2001 From: briskt <3172830+briskt@users.noreply.github.com> Date: Mon, 7 Oct 2024 17:17:57 +0800 Subject: [PATCH 04/93] Move the endpoint breaking change to the "BC break" section (#2265) --- docs/simplesamlphp-upgrade-notes-2.3.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/simplesamlphp-upgrade-notes-2.3.md b/docs/simplesamlphp-upgrade-notes-2.3.md index fc5e7d7800..e1e88b1979 100644 --- a/docs/simplesamlphp-upgrade-notes-2.3.md +++ b/docs/simplesamlphp-upgrade-notes-2.3.md @@ -6,11 +6,6 @@ The following changes are relevant for installers and/or developers. - Session ID's are now hashed when stored in a database. This means all old sessions are effectively invalidated by this upgrade. We recommend clearing your session store as part of the upgrade-routine. -- Endpoints are now only accepted in array-style. The old string-style was deprecated for 9 yrs - already and was broken anyway. See [endpoints] - -[endpoints]: https://simplesamlphp.org/docs/stable/simplesamlphp-metadata-endpoints.html - ## Deprecations The following classes were marked `deprecated` and will be removed in a next major release. @@ -36,3 +31,8 @@ The use of plain-text admin-passwords has been deprecated. Generate a secure has - The language codes `pt-br` and `zh-tw` have been renamed to `pt_BR` and `zh_TW`. Please update your configuration to match the new names. + +- Endpoints are now only accepted in array-style. The old string-style was deprecated for 9 yrs + already and was broken anyway. See [endpoints] + +[endpoints]: https://simplesamlphp.org/docs/stable/simplesamlphp-metadata-endpoints.html From 4b20c11bfeb046dd4fb339704e190cfcd3dd9d17 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 21 Oct 2024 12:45:03 +0200 Subject: [PATCH 05/93] Fix typo --- docs/simplesamlphp-changelog.md | 1 + modules/admin/src/Controller/Federation.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 9c3308a1a2..455cfcbcab 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -10,6 +10,7 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD * Fix regression in metadata converter clipboard-button (#2253) +* Fix typo that caused the metadata file-upload to be hidden (#2271) ## Version 2.3.2 diff --git a/modules/admin/src/Controller/Federation.php b/modules/admin/src/Controller/Federation.php index e693aedbce..4f062e276c 100644 --- a/modules/admin/src/Controller/Federation.php +++ b/modules/admin/src/Controller/Federation.php @@ -481,7 +481,7 @@ public function metadataConverter(Request $request): Template 'xmldata' => $xmldata, 'output' => $output, 'error' => $error, - 'upload' => boolval(ini_get('file_upload')), + 'upload' => boolval(ini_get('file_uploads')), ]; $this->menu->addOption('logout', $t->data['logouturl'], Translate::noop('Log out')); From 254c6d8a378933ae6f4e73ac7bea4584cddfd20f Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Thu, 24 Oct 2024 09:00:39 +1000 Subject: [PATCH 06/93] locale: add support for transitioning st to en_LS (#2274) * locale: add support for transitioning st to en_LS * Update config-template * rename locale directories including in the modules --------- Co-authored-by: Tim van Dijen --- config/config.php.dist | 2 +- locales/{st => en_LS}/LC_MESSAGES/attributes.po | 0 locales/{st => en_LS}/LC_MESSAGES/messages.po | 0 .../admin/locales/{st => en_LS}/LC_MESSAGES/admin.po | 0 modules/core/locales/{st => en_LS}/LC_MESSAGES/core.po | 0 .../locales/{st => en_LS}/LC_MESSAGES/multiauth.po | 0 modules/saml/locales/{st => en_LS}/LC_MESSAGES/saml.po | 0 src/SimpleSAML/Locale/Language.php | 10 ++++++++-- 8 files changed, 9 insertions(+), 3 deletions(-) rename locales/{st => en_LS}/LC_MESSAGES/attributes.po (100%) rename locales/{st => en_LS}/LC_MESSAGES/messages.po (100%) rename modules/admin/locales/{st => en_LS}/LC_MESSAGES/admin.po (100%) rename modules/core/locales/{st => en_LS}/LC_MESSAGES/core.po (100%) rename modules/multiauth/locales/{st => en_LS}/LC_MESSAGES/multiauth.po (100%) rename modules/saml/locales/{st => en_LS}/LC_MESSAGES/saml.po (100%) diff --git a/config/config.php.dist b/config/config.php.dist index dd54dc9000..778124921d 100644 --- a/config/config.php.dist +++ b/config/config.php.dist @@ -826,7 +826,7 @@ $config = [ 'language.available' => [ 'en', 'no', 'nn', 'se', 'da', 'de', 'sv', 'fi', 'es', 'ca', 'fr', 'it', 'nl', 'lb', 'cs', 'sk', 'sl', 'lt', 'hr', 'hu', 'pl', 'pt', 'pt_BR', 'tr', 'ja', 'zh', 'zh_TW', - 'ru', 'et', 'he', 'id', 'sr', 'lv', 'ro', 'eu', 'el', 'af', 'zu', 'xh', 'st', + 'ru', 'et', 'he', 'id', 'sr', 'lv', 'ro', 'eu', 'el', 'af', 'zu', 'xh', 'en_LS', ], 'language.rtl' => ['ar', 'dv', 'fa', 'ur', 'he'], 'language.default' => 'en', diff --git a/locales/st/LC_MESSAGES/attributes.po b/locales/en_LS/LC_MESSAGES/attributes.po similarity index 100% rename from locales/st/LC_MESSAGES/attributes.po rename to locales/en_LS/LC_MESSAGES/attributes.po diff --git a/locales/st/LC_MESSAGES/messages.po b/locales/en_LS/LC_MESSAGES/messages.po similarity index 100% rename from locales/st/LC_MESSAGES/messages.po rename to locales/en_LS/LC_MESSAGES/messages.po diff --git a/modules/admin/locales/st/LC_MESSAGES/admin.po b/modules/admin/locales/en_LS/LC_MESSAGES/admin.po similarity index 100% rename from modules/admin/locales/st/LC_MESSAGES/admin.po rename to modules/admin/locales/en_LS/LC_MESSAGES/admin.po diff --git a/modules/core/locales/st/LC_MESSAGES/core.po b/modules/core/locales/en_LS/LC_MESSAGES/core.po similarity index 100% rename from modules/core/locales/st/LC_MESSAGES/core.po rename to modules/core/locales/en_LS/LC_MESSAGES/core.po diff --git a/modules/multiauth/locales/st/LC_MESSAGES/multiauth.po b/modules/multiauth/locales/en_LS/LC_MESSAGES/multiauth.po similarity index 100% rename from modules/multiauth/locales/st/LC_MESSAGES/multiauth.po rename to modules/multiauth/locales/en_LS/LC_MESSAGES/multiauth.po diff --git a/modules/saml/locales/st/LC_MESSAGES/saml.po b/modules/saml/locales/en_LS/LC_MESSAGES/saml.po similarity index 100% rename from modules/saml/locales/st/LC_MESSAGES/saml.po rename to modules/saml/locales/en_LS/LC_MESSAGES/saml.po diff --git a/src/SimpleSAML/Locale/Language.php b/src/SimpleSAML/Locale/Language.php index 58cdc67e85..433777e45f 100644 --- a/src/SimpleSAML/Locale/Language.php +++ b/src/SimpleSAML/Locale/Language.php @@ -172,16 +172,22 @@ private function getInstalledLanguages(): array ); // @deprecated - remove entire if-block in a new major release - if (array_intersect(['pt-br', 'zh-tw'], $configuredAvailableLanguages)) { + if (array_intersect(['pt-br', 'st', 'zh-tw'], $configuredAvailableLanguages)) { Logger::warning( "Deprecated locales found in `language.available`. " - . "Please replace 'pt-br' with 'pt_BR' and 'zh-tw' with 'zh_TW'.", + . "Please replace 'pt-br' with 'pt_BR'," + . " and 'st' with 'en_LS'," + . " and 'zh-tw' with 'zh_TW'.", ); if (($i = array_search('pt-br', $configuredAvailableLanguages)) !== false) { $configuredAvailableLanguages[$i] = 'pt_BR'; } + if (($i = array_search('st', $configuredAvailableLanguages)) !== false) { + $configuredAvailableLanguages[$i] = 'en_LS'; + } + if (($i = array_search('zh-tw', $configuredAvailableLanguages)) !== false) { $configuredAvailableLanguages[$i] = 'zh_TW'; } From c16dbaebfccaaad2d08f29436994ddc311b82dcb Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Thu, 24 Oct 2024 20:59:16 +1000 Subject: [PATCH 07/93] docs: use array format for ACS and SLS info in idp doc page (#2276) --- docs/simplesamlphp-idp.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/simplesamlphp-idp.md b/docs/simplesamlphp-idp.md index 681598c4cd..9c7eb9d2e9 100644 --- a/docs/simplesamlphp-idp.md +++ b/docs/simplesamlphp-idp.md @@ -184,8 +184,18 @@ This is a minimal example of a `metadata/saml20-sp-remote.php` metadata file for 'https://sp.example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp', - 'SingleLogoutService' => 'https://sp.example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp', + 'AssertionConsumerService' => [ + [ + 'Location' => 'https://sp.example.org/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + ], + ], + 'SingleLogoutService' => [ + [ + 'Location' => 'https://sp.example.org/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', + ], + ], ]; ``` From 813d5cd366a0d07b2bf3639365996477f29df1ab Mon Sep 17 00:00:00 2001 From: Dick Visser Date: Mon, 28 Oct 2024 17:14:14 +0100 Subject: [PATCH 08/93] Syntax highlighting for php.dist files --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index b265272a54..55ea540a90 100644 --- a/.gitattributes +++ b/.gitattributes @@ -21,3 +21,4 @@ phpunit.xml export-ignore .markdownlintignore export-ignore .markdownlint.yml export-ignore .markdownlintrc export-ignore +*.php.dist linguist-language=php From b568531ab7bcfdd04e99fccbc1134cec7600959b Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Fri, 1 Nov 2024 09:38:34 +1000 Subject: [PATCH 09/93] docs: some dev docs on the dependbot and dep updates (#2291) * docs: some dev docs on the dependbot and dep updates * lint --- docs/simplesamlphp-developer-information.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/simplesamlphp-developer-information.md b/docs/simplesamlphp-developer-information.md index e65baef5e1..3a155c7d2f 100644 --- a/docs/simplesamlphp-developer-information.md +++ b/docs/simplesamlphp-developer-information.md @@ -154,3 +154,11 @@ and apply it before pushing documentation changes to github. The release process is documented on the wiki . + +## Dependbot + +The dependbot + runs on the master branch +and creates pull requests with recommended updates. + +The release branches are updated automatically as part of the release process. From 2cd82d004534de1787131536b99843b192d2c7b0 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Mon, 4 Nov 2024 07:44:24 +1000 Subject: [PATCH 10/93] docs: update from old many endpoint formats to the one now in use (#2293) --- docs/simplesamlphp-reference-idp-remote.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/simplesamlphp-reference-idp-remote.md b/docs/simplesamlphp-reference-idp-remote.md index 4dc53b3e1f..91a714a432 100644 --- a/docs/simplesamlphp-reference-idp-remote.md +++ b/docs/simplesamlphp-reference-idp-remote.md @@ -182,7 +182,7 @@ $metadata['entity-id-2'] = [ `SingleLogoutService` : Endpoint URL for logout requests and responses. You should obtain this from the IdP. Users who log out from your service is redirected to this URL with the LogoutRequest using HTTP-REDIRECT. -: The value of this option is specified in one of several [endpoint formats](./simplesamlphp-metadata-endpoints). +: The value of this option is specified in the format shown in [endpoint format](./simplesamlphp-metadata-endpoints). `SingleLogoutServiceResponse` : Endpoint URL for logout responses. Overrides the `SingleLogoutService`-option for responses. @@ -190,7 +190,7 @@ $metadata['entity-id-2'] = [ `SingleSignOnService` : Endpoint URL for sign on. You should obtain this from the IdP. For SAML 2.0, SimpleSAMLphp will use the HTTP-Redirect binding when contacting this endpoint. -: The value of this option is specified in one of several [endpoint formats](./simplesamlphp-metadata-endpoints). +: The value of this option is specified in the format shown in [endpoint format](./simplesamlphp-metadata-endpoints). `SPNameQualifier` : This corresponds to the SPNameQualifier in the SAML 2.0 specification. It allows to give subjects a SP specific namespace. This option is rarely used, so if you don't need it, leave it out. When left out, SimpleSAMLphp assumes the entityID of your SP as the SPNameQualifier. From becbede6b9e0413b726052f3a0da354ad5f66c41 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Mon, 4 Nov 2024 08:07:20 +1000 Subject: [PATCH 11/93] docs: info about docs for modules (#2295) --- docs/simplesamlphp-developer-information.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/simplesamlphp-developer-information.md b/docs/simplesamlphp-developer-information.md index 3a155c7d2f..31b22c344b 100644 --- a/docs/simplesamlphp-developer-information.md +++ b/docs/simplesamlphp-developer-information.md @@ -124,6 +124,10 @@ might like to make the pull request against the simplesamlphp-2.1 branch and leave it to the team to also apply it to master and other branches in the same way that code updates work. +Some docs offered under the `docs` directory on the web site come from modules. +For example the [saml module](https://simplesamlphp.org/docs/2.3/saml/sp.html) +file comes from the file `./modules/saml/docs/sp.md` in the git repository. + ### Documentation linting The CI system has some linting for markdown files in place. This uses From b7706497d647b7964ee18d861e7cac3f7f71e270 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Mon, 4 Nov 2024 08:13:02 +1000 Subject: [PATCH 12/93] docs: update for single endpoints format (#2296) --- modules/saml/docs/sp.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/saml/docs/sp.md b/modules/saml/docs/sp.md index 5295f7c307..6025387439 100644 --- a/modules/saml/docs/sp.md +++ b/modules/saml/docs/sp.md @@ -97,11 +97,13 @@ The following attributes are available: : Note that this option can be overridden for a specific IdP in saml20-idp-remote. `AssertionConsumerService` -: List of Assertion Consumer Services in the generated metadata. Specified in the array of - arrays format as seen in the [Metadata endpoints](./simplesamlphp-metadata-endpoints) - documentation. Note that this list is taken at face value, so it's not useful to list - anything here that the SP auth source does not actually support (unless the URLs point - externally). + +: List of Assertion Consumer Services in the generated metadata. + Specified in the format detailed in the + [Metadata endpoints](./simplesamlphp-metadata-endpoints) documentation. + Note that this list is taken at face value, so it's not useful to + list anything here that the SP auth source does not actually + support (unless the URLs point externally). `AssertionConsumerServiceIndex` : The Assertion Consumer Service Index to be used in the AuthnRequest in place of the Assertion From 10382961cc30dd22bafe1418c01873faa2819e75 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Mon, 4 Nov 2024 09:01:47 +1000 Subject: [PATCH 13/93] docs: endpoint format udpate (#2297) --- docs/simplesamlphp-reference-sp-remote.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/simplesamlphp-reference-sp-remote.md b/docs/simplesamlphp-reference-sp-remote.md index f504070769..77e353f0e0 100644 --- a/docs/simplesamlphp-reference-sp-remote.md +++ b/docs/simplesamlphp-reference-sp-remote.md @@ -89,7 +89,7 @@ The following options can be set: This option is required - without it you will not be able to send responses back to the SP. -: The value of this option is specified in one of several [endpoint formats](./simplesamlphp-metadata-endpoints). +: The value of this option is specified the format detailed in [endpoint format](./simplesamlphp-metadata-endpoints). `attributeencodings` : What encoding should be used for the different attributes. This is @@ -241,7 +241,7 @@ The following options can be set: this SP. If the option isn't specified, this SP will not be logged out automatically when a single logout operation is initialized. -: The value of this option is specified in one of several [endpoint formats](./simplesamlphp-metadata-endpoints). +: The value of this option is specified in the format detailed in [endpoint format](./simplesamlphp-metadata-endpoints). `SingleLogoutServiceResponse` : The URL logout responses to this SP should be sent. If this option From 846ea1ffd3d57b96dd75fccd7a4252f159576e21 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Mon, 4 Nov 2024 09:23:53 +1000 Subject: [PATCH 14/93] docs: add some initial clarification to the multiauth module (#2298) * docs: add some initial clarification to the multiauth module * lint --- modules/multiauth/docs/multiauth.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/multiauth/docs/multiauth.md b/modules/multiauth/docs/multiauth.md index 045dd86b5c..4deb53dbe3 100644 --- a/modules/multiauth/docs/multiauth.md +++ b/modules/multiauth/docs/multiauth.md @@ -2,8 +2,18 @@ MultiAuth module ================ The MultiAuth module provides a method for users to choose between -a list of authentication sources. There is only one authentication -module: +a list of authentication sources. + +If you are looking to have your web application offer multiple +identity providers during login this is not the module you should be +using. For that case you should setup a single saml:SP authsource that +you can call from `\SimpleSAML\Auth\Simple`. If you have multiple +remote IdP's the discovery service will ask you which one to use. + +`multiauth` is meant to be used as a selector for different +authentication methods. + +There is only one authentication module: `multiauth:MultiAuth` : Authenticate the user against a list of authentication sources. From 8617023c633de033032fcd828d086eb68093be00 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Tue, 5 Nov 2024 10:41:24 +1000 Subject: [PATCH 15/93] dist files: update endpoints to new array only format (#2302) --- metadata/saml20-sp-remote.php.dist | 36 ++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/metadata/saml20-sp-remote.php.dist b/metadata/saml20-sp-remote.php.dist index 7b11e4e3d5..f57382ac34 100644 --- a/metadata/saml20-sp-remote.php.dist +++ b/metadata/saml20-sp-remote.php.dist @@ -10,8 +10,20 @@ * Example SimpleSAMLphp SAML 2.0 SP */ $metadata['https://saml2sp.example.org'] = [ - 'AssertionConsumerService' => 'https://saml2.example.org/module.php/saml/sp/saml2-acs.php/default-sp', - 'SingleLogoutService' => 'https://saml2sp.example.org/module.php/saml/sp/saml2-logout.php/default-sp', + 'AssertionConsumerService' => [ + [ + 'index' => 1, + 'isDefault' => true, + 'Location' => 'https://saml2.example.org/module.php/saml/sp/saml2-acs.php/default-sp', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + ], + ], + 'SingleLogoutService' => => [ + [ + 'Location' => 'https://saml2sp.example.org/module.php/saml/sp/saml2-logout.php/default-sp', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', + ], + ], ]; /* @@ -22,7 +34,14 @@ $metadata['https://saml2sp.example.org'] = [ * this user has the value of 'john'. */ $metadata['google.com'] = [ - 'AssertionConsumerService' => 'https://www.google.com/a/g.feide.no/acs', + 'AssertionConsumerService' => [ + [ + 'index' => 1, + 'isDefault' => true, + 'Location' => 'https://www.google.com/a/g.feide.no/acs', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + ], + ], 'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress', 'authproc' => [ 1 => [ @@ -34,8 +53,17 @@ $metadata['google.com'] = [ 'simplesaml.attributes' => false, ]; + $metadata['https://legacy.example.edu'] = [ - 'AssertionConsumerService' => 'https://legacy.example.edu/saml/acs', + 'AssertionConsumerService' => => [ + [ + 'index' => 1, + 'isDefault' => true, + 'Location' => 'https://legacy.example.edu/saml/acs', + 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + ], + ], + /* * Currently, SimpleSAMLphp defaults to the SHA-256 hashing algorithm. * Uncomment the following option to use SHA-1 for signatures directed From 340c14a13c6b3fbc0782469e4b535b5a4f55ee92 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Sun, 10 Nov 2024 08:14:31 +1000 Subject: [PATCH 16/93] i18n: move the st codes back to the st directory (#2306) --- locales/{en_LS => st}/LC_MESSAGES/attributes.po | 0 locales/{en_LS => st}/LC_MESSAGES/messages.po | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename locales/{en_LS => st}/LC_MESSAGES/attributes.po (100%) rename locales/{en_LS => st}/LC_MESSAGES/messages.po (100%) diff --git a/locales/en_LS/LC_MESSAGES/attributes.po b/locales/st/LC_MESSAGES/attributes.po similarity index 100% rename from locales/en_LS/LC_MESSAGES/attributes.po rename to locales/st/LC_MESSAGES/attributes.po diff --git a/locales/en_LS/LC_MESSAGES/messages.po b/locales/st/LC_MESSAGES/messages.po similarity index 100% rename from locales/en_LS/LC_MESSAGES/messages.po rename to locales/st/LC_MESSAGES/messages.po From 034c4cc1c584658977efe34f0182edecd7896278 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Wed, 13 Nov 2024 18:27:42 +1000 Subject: [PATCH 17/93] i18n: revert remaining bits of the st update (#2311) --- config/config.php.dist | 2 +- src/SimpleSAML/Locale/Language.php | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/config/config.php.dist b/config/config.php.dist index 778124921d..a01d3ce169 100644 --- a/config/config.php.dist +++ b/config/config.php.dist @@ -826,7 +826,7 @@ $config = [ 'language.available' => [ 'en', 'no', 'nn', 'se', 'da', 'de', 'sv', 'fi', 'es', 'ca', 'fr', 'it', 'nl', 'lb', 'cs', 'sk', 'sl', 'lt', 'hr', 'hu', 'pl', 'pt', 'pt_BR', 'tr', 'ja', 'zh', 'zh_TW', - 'ru', 'et', 'he', 'id', 'sr', 'lv', 'ro', 'eu', 'el', 'af', 'zu', 'xh', 'en_LS', + 'ru', 'et', 'he', 'id', 'sr', 'lv', 'ro', 'eu', 'el', 'af', 'zu', 'xh', 'st' ], 'language.rtl' => ['ar', 'dv', 'fa', 'ur', 'he'], 'language.default' => 'en', diff --git a/src/SimpleSAML/Locale/Language.php b/src/SimpleSAML/Locale/Language.php index 433777e45f..09d2f0d78b 100644 --- a/src/SimpleSAML/Locale/Language.php +++ b/src/SimpleSAML/Locale/Language.php @@ -176,7 +176,6 @@ private function getInstalledLanguages(): array Logger::warning( "Deprecated locales found in `language.available`. " . "Please replace 'pt-br' with 'pt_BR'," - . " and 'st' with 'en_LS'," . " and 'zh-tw' with 'zh_TW'.", ); @@ -184,10 +183,6 @@ private function getInstalledLanguages(): array $configuredAvailableLanguages[$i] = 'pt_BR'; } - if (($i = array_search('st', $configuredAvailableLanguages)) !== false) { - $configuredAvailableLanguages[$i] = 'en_LS'; - } - if (($i = array_search('zh-tw', $configuredAvailableLanguages)) !== false) { $configuredAvailableLanguages[$i] = 'zh_TW'; } From b54d6bbc1c3acba3473e91b0c2368f489b3fa29e Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Fri, 15 Nov 2024 06:34:23 +1000 Subject: [PATCH 18/93] i18n: update this message to be less misleading (#2313) --- src/SimpleSAML/Locale/Language.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SimpleSAML/Locale/Language.php b/src/SimpleSAML/Locale/Language.php index 09d2f0d78b..23d2471656 100644 --- a/src/SimpleSAML/Locale/Language.php +++ b/src/SimpleSAML/Locale/Language.php @@ -193,7 +193,8 @@ private function getInstalledLanguages(): array if (Locales::exists($code)) { $availableLanguages[] = $code; } else { - Logger::error("Language \"$code\" not installed. Check config."); + /* The configured language code can't be found in Symfony's list of known locales */ + Logger::error("Locale \"$code\" is not known to the translation system. Check language settings in your config."); } } From 385c2a80164dd2ba5462490497e98c69deb9a98a Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Sat, 16 Nov 2024 09:59:35 +0100 Subject: [PATCH 19/93] Release v2.3.3 --- .github/build/full.json | 14 +- composer.json | 2 +- composer.lock | 617 +++++++++++++++++-------------- docs/simplesamlphp-changelog.md | 19 +- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 6 files changed, 359 insertions(+), 297 deletions(-) diff --git a/.github/build/full.json b/.github/build/full.json index 01e660dbc2..7e93d7ebec 100644 --- a/.github/build/full.json +++ b/.github/build/full.json @@ -2,7 +2,7 @@ "modules": { "authorize": { "repository": "simplesamlphp/simplesamlphp-module-authorize", - "version": "~1.6.0" + "version": "~1.6.1" }, "consent": { "repository": "simplesamlphp/simplesamlphp-module-consent", @@ -10,11 +10,11 @@ }, "consentadmin": { "repository": "simplesamlphp/simplesamlphp-module-consentadmin", - "version": "~1.0.0" + "version": "~1.1.0" }, "discopower": { "repository": "simplesamlphp/simplesamlphp-module-discopower", - "version": "~1.4.0" + "version": "~1.4.1" }, "ldap": { "repository": "simplesamlphp/simplesamlphp-module-ldap", @@ -22,19 +22,19 @@ }, "metarefresh": { "repository": "simplesamlphp/simplesamlphp-module-metarefresh", - "version": "~1.2.0" + "version": "~1.2.2" }, "radius": { "repository": "simplesamlphp/simplesamlphp-module-radius", - "version": "~2.0.0" + "version": "~2.0.2" }, "statistics": { "repository": "simplesamlphp/simplesamlphp-module-statistics", - "version": "~1.2.0" + "version": "~1.2.2" }, "sqlauth": { "repository": "simplesamlphp/simplesamlphp-module-sqlauth", - "version": "~1.3.0" + "version": "~1.3.1" } } } diff --git a/composer.json b/composer.json index 72c4683994..a808f6da24 100644 --- a/composer.json +++ b/composer.json @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.2" + "version": "v2.3.3" } diff --git a/composer.lock b/composer.lock index 7604f4c266..197a8cb627 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "282e14b6588f9aae2d41c3260e038b24", + "content-hash": "d92254016c92c1549c1187a87107524d", "packages": [ { "name": "gettext/gettext", @@ -314,16 +314,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.9.1", + "version": "v6.9.2", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "039de174cd9c17a8389754d3b877a2ed22743e18" + "reference": "a7b17b42fa4887c92146243f3d2f4ccb962af17c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/039de174cd9c17a8389754d3b877a2ed22743e18", - "reference": "039de174cd9c17a8389754d3b877a2ed22743e18", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a7b17b42fa4887c92146243f3d2f4ccb962af17c", + "reference": "a7b17b42fa4887c92146243f3d2f4ccb962af17c", "shasum": "" }, "require": { @@ -383,7 +383,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.1" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.2" }, "funding": [ { @@ -391,7 +391,7 @@ "type": "github" } ], - "time": "2023-11-25T22:23:28+00:00" + "time": "2024-10-09T10:07:50+00:00" }, { "name": "psr/cache", @@ -655,16 +655,16 @@ }, { "name": "psr/log", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "79dff0b268932c640297f5208d6298f71855c03e" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", - "reference": "79dff0b268932c640297f5208d6298f71855c03e", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -699,9 +699,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.1" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2024-08-21T13:31:24+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "robrichards/xmlseclibs", @@ -747,16 +747,16 @@ }, { "name": "simplesamlphp/assert", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/assert.git", - "reference": "7b7ef2a68eb0e36e67915ebd802e1bb29483d7d9" + "reference": "cf9465870eb9fb52103e045217f6dca19aee7c84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/7b7ef2a68eb0e36e67915ebd802e1bb29483d7d9", - "reference": "7b7ef2a68eb0e36e67915ebd802e1bb29483d7d9", + "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/cf9465870eb9fb52103e045217f6dca19aee7c84", + "reference": "cf9465870eb9fb52103e045217f6dca19aee7c84", "shasum": "" }, "require": { @@ -800,9 +800,9 @@ "description": "A wrapper around webmozart/assert to make it useful beyond checking method arguments", "support": { "issues": "https://github.com/simplesamlphp/assert/issues", - "source": "https://github.com/simplesamlphp/assert/tree/v1.3.0" + "source": "https://github.com/simplesamlphp/assert/tree/v1.4.0" }, - "time": "2024-07-26T11:30:06+00:00" + "time": "2024-10-28T22:10:22+00:00" }, { "name": "simplesamlphp/composer-module-installer", @@ -847,6 +847,48 @@ }, "time": "2023-03-08T20:58:22+00:00" }, + { + "name": "simplesamlphp/composer-xmlprovider-installer", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/composer-xmlprovider-installer.git", + "reference": "ce09a877a1de9469f1a872f04703d75d6bafcdc6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/composer-xmlprovider-installer/zipball/ce09a877a1de9469f1a872f04703d75d6bafcdc6", + "reference": "ce09a877a1de9469f1a872f04703d75d6bafcdc6", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^8.1" + }, + "require-dev": { + "composer/composer": "^2.4", + "simplesamlphp/simplesamlphp-test-framework": "^1.5.4" + }, + "type": "composer-plugin", + "extra": { + "class": "SimpleSAML\\Composer\\XMLProvider\\XMLProviderInstallerPlugin" + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Composer\\XMLProvider\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "description": "A composer plugin that will auto-generate a classmap with all classes that implement SerializableElementInterface.", + "support": { + "issues": "https://github.com/simplesamlphp/composer-xmlprovider-installer/issues", + "source": "https://github.com/simplesamlphp/composer-xmlprovider-installer/tree/v1.0.1" + }, + "time": "2024-09-15T22:34:50+00:00" + }, { "name": "simplesamlphp/saml2", "version": "v4.6.12", @@ -907,16 +949,16 @@ }, { "name": "simplesamlphp/simplesamlphp-assets-base", - "version": "v2.3.0", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-assets-base.git", - "reference": "c6396600f0929dde7b78de41e6841251a3467063" + "reference": "b21b0a05cdedce3eb242b06d9bea30186bfea8e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/c6396600f0929dde7b78de41e6841251a3467063", - "reference": "c6396600f0929dde7b78de41e6841251a3467063", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/b21b0a05cdedce3eb242b06d9bea30186bfea8e1", + "reference": "b21b0a05cdedce3eb242b06d9bea30186bfea8e1", "shasum": "" }, "require": { @@ -937,22 +979,22 @@ "description": "Assets for the SimpleSAMLphp main repository", "support": { "issues": "https://github.com/simplesamlphp/simplesamlphp-assets-base/issues", - "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.0" + "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.1" }, - "time": "2024-09-06T16:21:56+00:00" + "time": "2024-10-13T01:14:49+00:00" }, { "name": "simplesamlphp/xml-common", - "version": "v1.17.2", + "version": "v1.18.5", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-common.git", - "reference": "c76769ab4e8eb7153f31d083e7af7f06f9747ed7" + "reference": "daed5738bc22067c9b0abec2d2b877dc8a1d7647" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/c76769ab4e8eb7153f31d083e7af7f06f9747ed7", - "reference": "c76769ab4e8eb7153f31d083e7af7f06f9747ed7", + "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/daed5738bc22067c9b0abec2d2b877dc8a1d7647", + "reference": "daed5738bc22067c9b0abec2d2b877dc8a1d7647", "shasum": "" }, "require": { @@ -963,12 +1005,14 @@ "ext-spl": "*", "ext-xmlreader": "*", "php": "^8.1", - "simplesamlphp/assert": "^1.2" + "simplesamlphp/assert": "^1.2", + "simplesamlphp/composer-xmlprovider-installer": "~1.0.0", + "symfony/finder": "^6.4" }, "require-dev": { "simplesamlphp/simplesamlphp-test-framework": "^1.7" }, - "type": "project", + "type": "simplesamlphp-xmlprovider", "autoload": { "psr-4": { "SimpleSAML\\XML\\": "src/" @@ -998,20 +1042,20 @@ "issues": "https://github.com/simplesamlphp/xml-common/issues", "source": "https://github.com/simplesamlphp/xml-common" }, - "time": "2024-09-03T19:35:21+00:00" + "time": "2024-11-06T09:36:15+00:00" }, { "name": "simplesamlphp/xml-security", - "version": "v1.8.7", + "version": "v1.9.5", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "10071025f286b49edd7f30a12ab216515c170925" + "reference": "91e31f5930305e84ad92d573faf817abc8ad09c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/10071025f286b49edd7f30a12ab216515c170925", - "reference": "10071025f286b49edd7f30a12ab216515c170925", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/91e31f5930305e84ad92d573faf817abc8ad09c9", + "reference": "91e31f5930305e84ad92d573faf817abc8ad09c9", "shasum": "" }, "require": { @@ -1022,13 +1066,13 @@ "ext-pcre": "*", "ext-spl": "*", "php": "^8.1", - "simplesamlphp/assert": "^1.1", - "simplesamlphp/xml-common": "^1.15" + "simplesamlphp/assert": "^1.3", + "simplesamlphp/xml-common": "^1.18" }, "require-dev": { - "simplesamlphp/simplesamlphp-test-framework": "^1.5" + "simplesamlphp/simplesamlphp-test-framework": "^1.7" }, - "type": "library", + "type": "simplesamlphp-xmlprovider", "autoload": { "psr-4": { "SimpleSAML\\XMLSecurity\\": "src/" @@ -1060,22 +1104,22 @@ ], "support": { "issues": "https://github.com/simplesamlphp/xml-security/issues", - "source": "https://github.com/simplesamlphp/xml-security/tree/v1.8.7" + "source": "https://github.com/simplesamlphp/xml-security/tree/v1.9.5" }, - "time": "2024-09-03T18:57:31+00:00" + "time": "2024-09-16T21:10:04+00:00" }, { "name": "symfony/cache", - "version": "v6.4.11", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "36daef8fce88fe0b9a4f8cf4c342ced5c05616dc" + "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/36daef8fce88fe0b9a4f8cf4c342ced5c05616dc", - "reference": "36daef8fce88fe0b9a4f8cf4c342ced5c05616dc", + "url": "https://api.github.com/repos/symfony/cache/zipball/36fb8aa88833708e9f29014b6f15fac051a8b613", + "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613", "shasum": "" }, "require": { @@ -1142,7 +1186,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.11" + "source": "https://github.com/symfony/cache/tree/v6.4.14" }, "funding": [ { @@ -1158,7 +1202,7 @@ "type": "tidelift" } ], - "time": "2024-08-05T07:40:31+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/cache-contracts", @@ -1238,16 +1282,16 @@ }, { "name": "symfony/config", - "version": "v6.4.8", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "12e7e52515ce37191b193cf3365903c4f3951e35" + "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/12e7e52515ce37191b193cf3365903c4f3951e35", - "reference": "12e7e52515ce37191b193cf3365903c4f3951e35", + "url": "https://api.github.com/repos/symfony/config/zipball/4e55e7e4ffddd343671ea972216d4509f46c22ef", + "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef", "shasum": "" }, "require": { @@ -1293,7 +1337,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.8" + "source": "https://github.com/symfony/config/tree/v6.4.14" }, "funding": [ { @@ -1309,20 +1353,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-11-04T11:33:53+00:00" }, { "name": "symfony/console", - "version": "v6.4.11", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", - "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", "shasum": "" }, "require": { @@ -1387,7 +1431,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.11" + "source": "https://github.com/symfony/console/tree/v6.4.15" }, "funding": [ { @@ -1403,20 +1447,20 @@ "type": "tidelift" } ], - "time": "2024-08-15T22:48:29+00:00" + "time": "2024-11-06T14:19:14+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.11", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e" + "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", - "reference": "e93c8368dc9915c2fe12018ff22fcbbdd32c9a9e", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/70ab1f65a4516ef741e519ea938e6aa465e6aa36", + "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36", "shasum": "" }, "require": { @@ -1468,7 +1512,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.11" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.15" }, "funding": [ { @@ -1484,7 +1528,7 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2024-11-09T06:56:25+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1555,16 +1599,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.10", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0" + "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0", - "reference": "231f1b2ee80f72daa1972f7340297d67439224f0", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9", + "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9", "shasum": "" }, "require": { @@ -1610,7 +1654,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.10" + "source": "https://github.com/symfony/error-handler/tree/v6.4.14" }, "funding": [ { @@ -1626,20 +1670,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b" + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b", - "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", "shasum": "" }, "require": { @@ -1690,7 +1734,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/v6.4.8" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" }, "funding": [ { @@ -1706,7 +1750,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -1786,16 +1830,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.9", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" + "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", - "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", + "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", "shasum": "" }, "require": { @@ -1832,7 +1876,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.9" + "source": "https://github.com/symfony/filesystem/tree/v6.4.13" }, "funding": [ { @@ -1848,20 +1892,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T09:49:33+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/finder", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" + "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", - "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958", + "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958", "shasum": "" }, "require": { @@ -1896,7 +1940,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.11" + "source": "https://github.com/symfony/finder/tree/v6.4.13" }, "funding": [ { @@ -1912,20 +1956,20 @@ "type": "tidelift" } ], - "time": "2024-08-13T14:27:37+00:00" + "time": "2024-10-01T08:30:56+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.10", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "6cbdb0cc3ddbb63499262cd3036882b08ee2690b" + "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/6cbdb0cc3ddbb63499262cd3036882b08ee2690b", - "reference": "6cbdb0cc3ddbb63499262cd3036882b08ee2690b", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e8b0bd921f9bd35ea4d1508067c3f3f6e2036418", + "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418", "shasum": "" }, "require": { @@ -1934,7 +1978,7 @@ "php": ">=8.1", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/config": "^6.1|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4.12|^7.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.1|^7.0", "symfony/event-dispatcher": "^5.4|^6.0|^7.0", @@ -1964,6 +2008,7 @@ "symfony/mime": "<6.4", "symfony/property-access": "<5.4", "symfony/property-info": "<5.4", + "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6", "symfony/scheduler": "<6.4.4|>=7.0.0,<7.0.4", "symfony/security-core": "<5.4", "symfony/security-csrf": "<5.4", @@ -2044,7 +2089,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.10" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.13" }, "funding": [ { @@ -2060,20 +2105,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T13:24:20+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.10", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b" + "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/117f1f20a7ade7bcea28b861fb79160a21a1e37b", - "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", + "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", "shasum": "" }, "require": { @@ -2083,12 +2128,12 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.3" + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", + "symfony/cache": "^6.4.12|^7.1.5", "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", @@ -2121,7 +2166,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.10" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.15" }, "funding": [ { @@ -2137,20 +2182,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:36:27+00:00" + "time": "2024-11-08T16:09:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.11", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79" + "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1ba6b89d781cb47448155cc70dd2e0f1b0584c79", - "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5", + "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5", "shasum": "" }, "require": { @@ -2235,7 +2280,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.11" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.15" }, "funding": [ { @@ -2251,20 +2296,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:57:20+00:00" + "time": "2024-11-13T13:57:37+00:00" }, { "name": "symfony/intl", - "version": "v6.4.8", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "50265cdcf5a44bec3fcf487b5d0015aece91d1eb" + "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/50265cdcf5a44bec3fcf487b5d0015aece91d1eb", - "reference": "50265cdcf5a44bec3fcf487b5d0015aece91d1eb", + "url": "https://api.github.com/repos/symfony/intl/zipball/b1d5e8d82615b60f229216edfee0b59e2ef66da6", + "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6", "shasum": "" }, "require": { @@ -2318,7 +2363,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.8" + "source": "https://github.com/symfony/intl/tree/v6.4.15" }, "funding": [ { @@ -2334,20 +2379,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-11-08T15:28:48+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "90ebbe946e5d64a5fad9ac9427e335045cf2bd31" + "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/90ebbe946e5d64a5fad9ac9427e335045cf2bd31", - "reference": "90ebbe946e5d64a5fad9ac9427e335045cf2bd31", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/e97a1b31f60b8bdfc1fdedab4398538da9441d47", + "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47", "shasum": "" }, "require": { @@ -2390,7 +2435,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.4.8" + "source": "https://github.com/symfony/password-hasher/tree/v6.4.13" }, "funding": [ { @@ -2406,24 +2451,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -2469,7 +2514,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -2485,24 +2530,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -2547,7 +2592,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -2563,24 +2608,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "e76343c631b453088e2260ac41dfebe21954de81" + "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e76343c631b453088e2260ac41dfebe21954de81", - "reference": "e76343c631b453088e2260ac41dfebe21954de81", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", + "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance and support of other locales than \"en\"" @@ -2631,7 +2676,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.31.0" }, "funding": [ { @@ -2647,24 +2692,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -2712,7 +2757,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -2728,24 +2773,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -2792,7 +2837,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -2808,24 +2853,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -2868,7 +2913,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -2884,24 +2929,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -2944,7 +2989,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" }, "funding": [ { @@ -2960,20 +3005,20 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:35:24+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/routing", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a" + "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", - "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a", + "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278", + "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278", "shasum": "" }, "require": { @@ -3027,7 +3072,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.11" + "source": "https://github.com/symfony/routing/tree/v6.4.13" }, "funding": [ { @@ -3043,7 +3088,7 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2024-10-01T08:30:56+00:00" }, { "name": "symfony/service-contracts", @@ -3130,16 +3175,16 @@ }, { "name": "symfony/string", - "version": "v6.4.11", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", - "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", "shasum": "" }, "require": { @@ -3196,7 +3241,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.11" + "source": "https://github.com/symfony/string/tree/v6.4.15" }, "funding": [ { @@ -3212,7 +3257,7 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2024-11-13T13:31:12+00:00" }, { "name": "symfony/translation-contracts", @@ -3294,16 +3339,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "2cf03a4012631b74d68f9e6c3e03798ac592cbe5" + "reference": "ec3511eef0576f378b2758da9e1c157086babd59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/2cf03a4012631b74d68f9e6c3e03798ac592cbe5", - "reference": "2cf03a4012631b74d68f9e6c3e03798ac592cbe5", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ec3511eef0576f378b2758da9e1c157086babd59", + "reference": "ec3511eef0576f378b2758da9e1c157086babd59", "shasum": "" }, "require": { @@ -3383,7 +3428,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.11" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.13" }, "funding": [ { @@ -3399,20 +3444,20 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:15:38+00:00" + "time": "2024-10-25T15:07:50+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.11", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694" + "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694", - "reference": "ee14c8254a480913268b1e3b1cba8045ed122694", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", + "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", "shasum": "" }, "require": { @@ -3468,7 +3513,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.11" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.15" }, "funding": [ { @@ -3484,20 +3529,20 @@ "type": "tidelift" } ], - "time": "2024-08-30T16:03:21+00:00" + "time": "2024-11-08T15:28:48+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.9", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "f9a060622e0d93777b7f8687ec4860191e16802e" + "reference": "0f605f72a363f8743001038a176eeb2a11223b51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e", - "reference": "f9a060622e0d93777b7f8687ec4860191e16802e", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f605f72a363f8743001038a176eeb2a11223b51", + "reference": "0f605f72a363f8743001038a176eeb2a11223b51", "shasum": "" }, "require": { @@ -3545,7 +3590,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.9" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.13" }, "funding": [ { @@ -3561,20 +3606,20 @@ "type": "tidelift" } ], - "time": "2024-06-24T15:53:56+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.11", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "be37e7f13195e05ab84ca5269365591edd240335" + "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/be37e7f13195e05ab84ca5269365591edd240335", - "reference": "be37e7f13195e05ab84ca5269365591edd240335", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", + "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", "shasum": "" }, "require": { @@ -3617,7 +3662,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.11" + "source": "https://github.com/symfony/yaml/tree/v6.4.13" }, "funding": [ { @@ -3633,26 +3678,26 @@ "type": "tidelift" } ], - "time": "2024-08-12T09:55:28+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "twig/intl-extra", - "version": "v3.12.0", + "version": "v3.13.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "61e1189333120a475d2b67b93664b8002668fc27" + "reference": "1b8d78c5db08bdc61015fd55009d2e84b3aa7e38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/61e1189333120a475d2b67b93664b8002668fc27", - "reference": "61e1189333120a475d2b67b93664b8002668fc27", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/1b8d78c5db08bdc61015fd55009d2e84b3aa7e38", + "reference": "1b8d78c5db08bdc61015fd55009d2e84b3aa7e38", "shasum": "" }, "require": { "php": ">=8.0.2", "symfony/intl": "^5.4|^6.4|^7.0", - "twig/twig": "^3.10" + "twig/twig": "^3.13|^4.0" }, "require-dev": { "symfony/phpunit-bridge": "^6.4|^7.0" @@ -3685,7 +3730,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.12.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.13.0" }, "funding": [ { @@ -3697,20 +3742,20 @@ "type": "tidelift" } ], - "time": "2024-08-10T10:32:24+00:00" + "time": "2024-09-03T13:08:40+00:00" }, { "name": "twig/twig", - "version": "v3.14.0", + "version": "v3.14.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72" + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72", - "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", "shasum": "" }, "require": { @@ -3764,7 +3809,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.0" + "source": "https://github.com/twigphp/Twig/tree/v3.14.2" }, "funding": [ { @@ -3776,7 +3821,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T17:55:12+00:00" + "time": "2024-11-07T12:36:22+00:00" }, { "name": "webmozart/assert", @@ -4029,16 +4074,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -4077,7 +4122,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -4085,20 +4130,20 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nikic/php-parser", - "version": "v4.19.1", + "version": "v4.19.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", "shasum": "" }, "require": { @@ -4107,7 +4152,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -4139,9 +4184,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" }, - "time": "2024-03-17T08:10:35+00:00" + "time": "2024-09-29T15:01:53+00:00" }, { "name": "phar-io/manifest", @@ -4311,16 +4356,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.30.0", + "version": "1.33.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", - "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", "shasum": "" }, "require": { @@ -4352,22 +4397,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" }, - "time": "2024-08-29T09:54:52+00:00" + "time": "2024-10-13T11:25:22+00:00" }, { "name": "phpstan/phpstan", - "version": "1.12.2", + "version": "1.12.10", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "0ca1c7bb55fca8fe6448f16fff0f311ccec960a1" + "reference": "fc463b5d0fe906dcf19689be692c65c50406a071" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0ca1c7bb55fca8fe6448f16fff0f311ccec960a1", - "reference": "0ca1c7bb55fca8fe6448f16fff0f311ccec960a1", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/fc463b5d0fe906dcf19689be692c65c50406a071", + "reference": "fc463b5d0fe906dcf19689be692c65c50406a071", "shasum": "" }, "require": { @@ -4412,32 +4457,32 @@ "type": "github" } ], - "time": "2024-09-05T16:09:28+00:00" + "time": "2024-11-11T15:37:09+00:00" }, { "name": "phpstan/phpstan-mockery", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-mockery.git", - "reference": "88ae85931768efd3aaf3cce4cb9cb54c4d157d03" + "reference": "98cac6e256b4ee60fdeb26a7dd81bb271b454e80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-mockery/zipball/88ae85931768efd3aaf3cce4cb9cb54c4d157d03", - "reference": "88ae85931768efd3aaf3cce4cb9cb54c4d157d03", + "url": "https://api.github.com/repos/phpstan/phpstan-mockery/zipball/98cac6e256b4ee60fdeb26a7dd81bb271b454e80", + "reference": "98cac6e256b4ee60fdeb26a7dd81bb271b454e80", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.10" + "phpstan/phpstan": "^1.12" }, "require-dev": { - "mockery/mockery": "^1.2.4", + "mockery/mockery": "^1.6.11", "nikic/php-parser": "^4.13.0", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.4", + "phpstan/phpstan-strict-rules": "^1.6", "phpunit/phpunit": "^9.5" }, "type": "phpstan-extension", @@ -4460,9 +4505,9 @@ "description": "PHPStan Mockery extension", "support": { "issues": "https://github.com/phpstan/phpstan-mockery/issues", - "source": "https://github.com/phpstan/phpstan-mockery/tree/1.1.2" + "source": "https://github.com/phpstan/phpstan-mockery/tree/1.1.3" }, - "time": "2024-01-10T13:50:05+00:00" + "time": "2024-09-11T15:47:29+00:00" }, { "name": "phpunit/php-code-coverage", @@ -4787,16 +4832,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.32", + "version": "10.5.38", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f069f46840445d37a4e6f0de8c5879598f9c4327" + "reference": "a86773b9e887a67bc53efa9da9ad6e3f2498c132" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f069f46840445d37a4e6f0de8c5879598f9c4327", - "reference": "f069f46840445d37a4e6f0de8c5879598f9c4327", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a86773b9e887a67bc53efa9da9ad6e3f2498c132", + "reference": "a86773b9e887a67bc53efa9da9ad6e3f2498c132", "shasum": "" }, "require": { @@ -4817,7 +4862,7 @@ "phpunit/php-timer": "^6.0.0", "sebastian/cli-parser": "^2.0.1", "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.2", + "sebastian/comparator": "^5.0.3", "sebastian/diff": "^5.1.1", "sebastian/environment": "^6.1.0", "sebastian/exporter": "^5.1.2", @@ -4868,7 +4913,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.32" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.38" }, "funding": [ { @@ -4884,7 +4929,7 @@ "type": "tidelift" } ], - "time": "2024-09-04T13:33:39+00:00" + "time": "2024-10-28T13:06:21+00:00" }, { "name": "predis/predis", @@ -5117,16 +5162,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.2", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53" + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", - "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", "shasum": "" }, "require": { @@ -5137,7 +5182,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.4" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -5182,7 +5227,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" }, "funding": [ { @@ -5190,7 +5235,7 @@ "type": "github" } ], - "time": "2024-08-12T06:03:08+00:00" + "time": "2024-10-18T14:56:07+00:00" }, { "name": "sebastian/complexity", @@ -6101,16 +6146,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.2", + "version": "3.11.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" + "reference": "70c08f8d20c0eb4fe56f26644dd94dae76a7f450" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", - "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/70c08f8d20c0eb4fe56f26644dd94dae76a7f450", + "reference": "70c08f8d20c0eb4fe56f26644dd94dae76a7f450", "shasum": "" }, "require": { @@ -6177,20 +6222,20 @@ "type": "open_collective" } ], - "time": "2024-07-21T23:26:44+00:00" + "time": "2024-11-12T09:53:29+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v7.1.4", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "e876eb90e32a8fc4c4911d458e09f88d65877d1c" + "reference": "c6b9d8f52d3e276bedb49612aa4a2a046171287f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e876eb90e32a8fc4c4911d458e09f88d65877d1c", - "reference": "e876eb90e32a8fc4c4911d458e09f88d65877d1c", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c6b9d8f52d3e276bedb49612aa4a2a046171287f", + "reference": "c6b9d8f52d3e276bedb49612aa4a2a046171287f", "shasum": "" }, "require": { @@ -6243,7 +6288,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.1.4" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.1.6" }, "funding": [ { @@ -6259,20 +6304,20 @@ "type": "tidelift" } ], - "time": "2024-08-13T14:28:19+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/translation", - "version": "v6.4.10", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9" + "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/94041203f8ac200ae9e7c6a18fa6137814ccecc9", - "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9", + "url": "https://api.github.com/repos/symfony/translation/zipball/bee9bfabfa8b4045a66bf82520e492cddbaffa66", + "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66", "shasum": "" }, "require": { @@ -6338,7 +6383,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.10" + "source": "https://github.com/symfony/translation/tree/v6.4.13" }, "funding": [ { @@ -6354,7 +6399,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-09-27T18:14:25+00:00" }, { "name": "theseer/tokenizer", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 455cfcbcab..9ccff53795 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,13 +5,30 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.3 +## Version 2.3.4 Released TBD +## Version 2.3.3 + +Released 2024-11-16 + +* Fix `st`-language by updating the ICU-files (#2305) +* Fix docs and configuration examples regarding SSO-endpoints. + +`admin` + * Fix regression in metadata converter clipboard-button (#2253) * Fix typo that caused the metadata file-upload to be hidden (#2271) +`discopower` + +* Throw a meaningful exception when tags contain illegal characters (v1.4.1) + +`ldap` + +* Fix a missing negation that rendered multi-ldap broken (v2.3.7) + ## Version 2.3.2 Released 2024-09-06 diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index 297c4f0f8a..a725546e1a 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.2 +%define version 2.3.3 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 951614479f..bbd6e8e378 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.2'; + public const VERSION = '2.3.3'; /** * A default value which means that the given option is required. From 5c27bf2b8b33ea3ba605a4928c082436a58cb37d Mon Sep 17 00:00:00 2001 From: "michael.dsilva" Date: Mon, 18 Nov 2024 13:27:42 +1100 Subject: [PATCH 20/93] fix double => --- metadata/saml20-sp-remote.php.dist | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata/saml20-sp-remote.php.dist b/metadata/saml20-sp-remote.php.dist index f57382ac34..55d7353504 100644 --- a/metadata/saml20-sp-remote.php.dist +++ b/metadata/saml20-sp-remote.php.dist @@ -18,7 +18,7 @@ $metadata['https://saml2sp.example.org'] = [ 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', ], ], - 'SingleLogoutService' => => [ + 'SingleLogoutService' => [ [ 'Location' => 'https://saml2sp.example.org/module.php/saml/sp/saml2-logout.php/default-sp', 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', @@ -55,7 +55,7 @@ $metadata['google.com'] = [ $metadata['https://legacy.example.edu'] = [ - 'AssertionConsumerService' => => [ + 'AssertionConsumerService' => [ [ 'index' => 1, 'isDefault' => true, From 07575f21045682163086a61ce42148c4945c6a24 Mon Sep 17 00:00:00 2001 From: Guy Halse Date: Mon, 18 Nov 2024 10:06:39 +0200 Subject: [PATCH 21/93] Remove erroneous mention of st --- src/SimpleSAML/Locale/Language.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SimpleSAML/Locale/Language.php b/src/SimpleSAML/Locale/Language.php index 23d2471656..b4e2952571 100644 --- a/src/SimpleSAML/Locale/Language.php +++ b/src/SimpleSAML/Locale/Language.php @@ -172,7 +172,7 @@ private function getInstalledLanguages(): array ); // @deprecated - remove entire if-block in a new major release - if (array_intersect(['pt-br', 'st', 'zh-tw'], $configuredAvailableLanguages)) { + if (array_intersect(['pt-br', 'zh-tw'], $configuredAvailableLanguages)) { Logger::warning( "Deprecated locales found in `language.available`. " . "Please replace 'pt-br' with 'pt_BR'," From 167f6d890232da8f3230dd32ed2f0c2db3dbfdcc Mon Sep 17 00:00:00 2001 From: Hamid Afghan Date: Wed, 20 Nov 2024 12:41:34 +0100 Subject: [PATCH 22/93] Add the index directive to nginx configuration (#2329) --- docs/simplesamlphp-install.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/simplesamlphp-install.md b/docs/simplesamlphp-install.md index 8d1530e615..3283f25319 100644 --- a/docs/simplesamlphp-install.md +++ b/docs/simplesamlphp-install.md @@ -181,6 +181,7 @@ look like this: server { listen 443 ssl; server_name idp.example.com; + index index.php; ssl_certificate /etc/pki/tls/certs/idp.example.com.crt; ssl_certificate_key /etc/pki/tls/private/idp.example.com.key; From e50dc5341d0615aae9362e8a2b6bf2bc05725dfa Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Fri, 22 Nov 2024 09:50:55 +1000 Subject: [PATCH 23/93] i18n move attributes into an attributes domain (#2328) --- bin/translateAttributes.php | 1 + locales/af/LC_MESSAGES/attributes.po | 1 + locales/ar/LC_MESSAGES/attributes.po | 1 + locales/ca/LC_MESSAGES/attributes.po | 1 + locales/cs/LC_MESSAGES/attributes.po | 1 + locales/da/LC_MESSAGES/attributes.po | 1 + locales/de/LC_MESSAGES/attributes.po | 1 + locales/el/LC_MESSAGES/attributes.po | 1 + locales/en/LC_MESSAGES/attributes.po | 2 ++ locales/es/LC_MESSAGES/attributes.po | 1 + locales/et/LC_MESSAGES/attributes.po | 1 + locales/eu/LC_MESSAGES/attributes.po | 1 + locales/fa/LC_MESSAGES/attributes.po | 1 + locales/fi/LC_MESSAGES/attributes.po | 1 + locales/fr/LC_MESSAGES/attributes.po | 1 + locales/he/LC_MESSAGES/attributes.po | 1 + locales/hr/LC_MESSAGES/attributes.po | 1 + locales/hu/LC_MESSAGES/attributes.po | 1 + locales/id/LC_MESSAGES/attributes.po | 1 + locales/it/LC_MESSAGES/attributes.po | 1 + locales/ja/LC_MESSAGES/attributes.po | 1 + locales/lb/LC_MESSAGES/attributes.po | 1 + locales/lt/LC_MESSAGES/attributes.po | 1 + locales/lv/LC_MESSAGES/attributes.po | 1 + locales/nb/LC_MESSAGES/attributes.po | 1 + locales/nl/LC_MESSAGES/attributes.po | 1 + locales/nn/LC_MESSAGES/attributes.po | 1 + locales/no/LC_MESSAGES/attributes.po | 1 + locales/pl/LC_MESSAGES/attributes.po | 1 + locales/pt/LC_MESSAGES/attributes.po | 1 + locales/pt_BR/LC_MESSAGES/attributes.po | 1 + locales/ro/LC_MESSAGES/attributes.po | 1 + locales/ru/LC_MESSAGES/attributes.po | 1 + locales/se/LC_MESSAGES/attributes.po | 1 + locales/sk/LC_MESSAGES/attributes.po | 1 + locales/sl/LC_MESSAGES/attributes.po | 1 + locales/sma/LC_MESSAGES/attributes.po | 1 + locales/sr/LC_MESSAGES/attributes.po | 1 + locales/st/LC_MESSAGES/attributes.po | 1 + locales/sv/LC_MESSAGES/attributes.po | 1 + locales/tr/LC_MESSAGES/attributes.po | 1 + locales/ur/LC_MESSAGES/attributes.po | 1 + locales/xh/LC_MESSAGES/attributes.po | 1 + locales/zh/LC_MESSAGES/attributes.po | 1 + locales/zh_TW/LC_MESSAGES/attributes.po | 1 + locales/zu/LC_MESSAGES/attributes.po | 1 + src/SimpleSAML/Locale/Translate.php | 2 +- 47 files changed, 48 insertions(+), 1 deletion(-) diff --git a/bin/translateAttributes.php b/bin/translateAttributes.php index 6ece51329f..b5a3d7f2d6 100755 --- a/bin/translateAttributes.php +++ b/bin/translateAttributes.php @@ -121,5 +121,6 @@ $strings->setLanguage($language); echo "Saving translations to " . $base . "locales/" . $language . "/LC_MESSAGES/attributes.po\n"; + $strings->setDomain("attributes"); Gettext\Generators\Po::toFile($strings, $base . 'locales/' . $language . '/LC_MESSAGES/attributes.po'); } diff --git a/locales/af/LC_MESSAGES/attributes.po b/locales/af/LC_MESSAGES/attributes.po index 30634432a7..7e71ea10cb 100644 --- a/locales/af/LC_MESSAGES/attributes.po +++ b/locales/af/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: af\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ar/LC_MESSAGES/attributes.po b/locales/ar/LC_MESSAGES/attributes.po index e5a3246ee9..bad6f140b4 100644 --- a/locales/ar/LC_MESSAGES/attributes.po +++ b/locales/ar/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ar\n" "Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((n % 100 >= 3 && n % 100 <= 10) ? 3 : ((n % 100 >= 11 && n % 100 <= 99) ? 4 : 5))));\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ca/LC_MESSAGES/attributes.po b/locales/ca/LC_MESSAGES/attributes.po index 1bb59063a9..df84b3cbf2 100644 --- a/locales/ca/LC_MESSAGES/attributes.po +++ b/locales/ca/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ca\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/cs/LC_MESSAGES/attributes.po b/locales/cs/LC_MESSAGES/attributes.po index 4145772329..92268fdbbb 100644 --- a/locales/cs/LC_MESSAGES/attributes.po +++ b/locales/cs/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n >= 2 && n <= 4) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/da/LC_MESSAGES/attributes.po b/locales/da/LC_MESSAGES/attributes.po index b2440db468..6ea2c02606 100644 --- a/locales/da/LC_MESSAGES/attributes.po +++ b/locales/da/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/de/LC_MESSAGES/attributes.po b/locales/de/LC_MESSAGES/attributes.po index a72cd00b8f..110c6d0875 100644 --- a/locales/de/LC_MESSAGES/attributes.po +++ b/locales/de/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/el/LC_MESSAGES/attributes.po b/locales/el/LC_MESSAGES/attributes.po index 1caa092673..8ae4e097ad 100644 --- a/locales/el/LC_MESSAGES/attributes.po +++ b/locales/el/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/en/LC_MESSAGES/attributes.po b/locales/en/LC_MESSAGES/attributes.po index 87987ba8ba..c3a2ac3e4b 100644 --- a/locales/en/LC_MESSAGES/attributes.po +++ b/locales/en/LC_MESSAGES/attributes.po @@ -9,6 +9,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" + msgid "aRecord" msgstr "aRecord" diff --git a/locales/es/LC_MESSAGES/attributes.po b/locales/es/LC_MESSAGES/attributes.po index b90edbaf59..749dedac1e 100644 --- a/locales/es/LC_MESSAGES/attributes.po +++ b/locales/es/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/et/LC_MESSAGES/attributes.po b/locales/et/LC_MESSAGES/attributes.po index 262432c553..66780613f6 100644 --- a/locales/et/LC_MESSAGES/attributes.po +++ b/locales/et/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: et\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/eu/LC_MESSAGES/attributes.po b/locales/eu/LC_MESSAGES/attributes.po index 223120040d..230a780eb0 100644 --- a/locales/eu/LC_MESSAGES/attributes.po +++ b/locales/eu/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/fa/LC_MESSAGES/attributes.po b/locales/fa/LC_MESSAGES/attributes.po index 29364f1a86..5617ec188e 100644 --- a/locales/fa/LC_MESSAGES/attributes.po +++ b/locales/fa/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/fi/LC_MESSAGES/attributes.po b/locales/fi/LC_MESSAGES/attributes.po index cfaa83efaa..f2aec5264b 100644 --- a/locales/fi/LC_MESSAGES/attributes.po +++ b/locales/fi/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fi\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/fr/LC_MESSAGES/attributes.po b/locales/fr/LC_MESSAGES/attributes.po index e4267a5af8..1035eadf58 100644 --- a/locales/fr/LC_MESSAGES/attributes.po +++ b/locales/fr/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/he/LC_MESSAGES/attributes.po b/locales/he/LC_MESSAGES/attributes.po index 99f6147444..376224f11f 100644 --- a/locales/he/LC_MESSAGES/attributes.po +++ b/locales/he/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: he\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3));\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/hr/LC_MESSAGES/attributes.po b/locales/hr/LC_MESSAGES/attributes.po index ff787bb93f..75a0a7695a 100644 --- a/locales/hr/LC_MESSAGES/attributes.po +++ b/locales/hr/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: hr\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/hu/LC_MESSAGES/attributes.po b/locales/hu/LC_MESSAGES/attributes.po index 34b2c4536d..ca6300acca 100644 --- a/locales/hu/LC_MESSAGES/attributes.po +++ b/locales/hu/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/id/LC_MESSAGES/attributes.po b/locales/id/LC_MESSAGES/attributes.po index ff63bab785..c6c211610c 100644 --- a/locales/id/LC_MESSAGES/attributes.po +++ b/locales/id/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/it/LC_MESSAGES/attributes.po b/locales/it/LC_MESSAGES/attributes.po index e7ddfd7e75..0f34cb1765 100644 --- a/locales/it/LC_MESSAGES/attributes.po +++ b/locales/it/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ja/LC_MESSAGES/attributes.po b/locales/ja/LC_MESSAGES/attributes.po index 8de7fe1abd..f459f2e54b 100644 --- a/locales/ja/LC_MESSAGES/attributes.po +++ b/locales/ja/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/lb/LC_MESSAGES/attributes.po b/locales/lb/LC_MESSAGES/attributes.po index 11a4db4835..cc9d35f537 100644 --- a/locales/lb/LC_MESSAGES/attributes.po +++ b/locales/lb/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: lb\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/lt/LC_MESSAGES/attributes.po b/locales/lt/LC_MESSAGES/attributes.po index 293e30b6ef..02d6438b0e 100644 --- a/locales/lt/LC_MESSAGES/attributes.po +++ b/locales/lt/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: lt\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/lv/LC_MESSAGES/attributes.po b/locales/lv/LC_MESSAGES/attributes.po index 9eca6a241a..100c5435e1 100644 --- a/locales/lv/LC_MESSAGES/attributes.po +++ b/locales/lv/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/nb/LC_MESSAGES/attributes.po b/locales/nb/LC_MESSAGES/attributes.po index dc076ea98c..bfe8dfa7b6 100644 --- a/locales/nb/LC_MESSAGES/attributes.po +++ b/locales/nb/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/nl/LC_MESSAGES/attributes.po b/locales/nl/LC_MESSAGES/attributes.po index 73e3a7612d..dbc2f98c70 100644 --- a/locales/nl/LC_MESSAGES/attributes.po +++ b/locales/nl/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/nn/LC_MESSAGES/attributes.po b/locales/nn/LC_MESSAGES/attributes.po index 5d759c4ab5..07ab4160db 100644 --- a/locales/nn/LC_MESSAGES/attributes.po +++ b/locales/nn/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nn\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/no/LC_MESSAGES/attributes.po b/locales/no/LC_MESSAGES/attributes.po index dc076ea98c..bfe8dfa7b6 100644 --- a/locales/no/LC_MESSAGES/attributes.po +++ b/locales/no/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/pl/LC_MESSAGES/attributes.po b/locales/pl/LC_MESSAGES/attributes.po index 6a9ff83314..3f73404b75 100644 --- a/locales/pl/LC_MESSAGES/attributes.po +++ b/locales/pl/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/pt/LC_MESSAGES/attributes.po b/locales/pt/LC_MESSAGES/attributes.po index b296bb6038..4b8ceb88e4 100644 --- a/locales/pt/LC_MESSAGES/attributes.po +++ b/locales/pt/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pt\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/pt_BR/LC_MESSAGES/attributes.po b/locales/pt_BR/LC_MESSAGES/attributes.po index 172249039a..6b64b2ae25 100644 --- a/locales/pt_BR/LC_MESSAGES/attributes.po +++ b/locales/pt_BR/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pt-br\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ro/LC_MESSAGES/attributes.po b/locales/ro/LC_MESSAGES/attributes.po index 95041a7f41..259ddd93d3 100644 --- a/locales/ro/LC_MESSAGES/attributes.po +++ b/locales/ro/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 0 || n != 1 && n % 100 >= 1 && n % 100 <= 19) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ru/LC_MESSAGES/attributes.po b/locales/ru/LC_MESSAGES/attributes.po index 08dae63d5f..672fb3c17a 100644 --- a/locales/ru/LC_MESSAGES/attributes.po +++ b/locales/ru/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/se/LC_MESSAGES/attributes.po b/locales/se/LC_MESSAGES/attributes.po index 869a18cdde..5667b294de 100644 --- a/locales/se/LC_MESSAGES/attributes.po +++ b/locales/se/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: se\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sk/LC_MESSAGES/attributes.po b/locales/sk/LC_MESSAGES/attributes.po index b3585bbd03..ac79224f42 100644 --- a/locales/sk/LC_MESSAGES/attributes.po +++ b/locales/sk/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n == 1 ? 0 : (n >= 2 && n <= 4 ? 1 : 2))\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sl/LC_MESSAGES/attributes.po b/locales/sl/LC_MESSAGES/attributes.po index 4a46bc0d9a..84be217555 100644 --- a/locales/sl/LC_MESSAGES/attributes.po +++ b/locales/sl/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 || n % 100 == 4) ? 2 : 3));\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sma/LC_MESSAGES/attributes.po b/locales/sma/LC_MESSAGES/attributes.po index 8b9d97c2be..a404d22048 100644 --- a/locales/sma/LC_MESSAGES/attributes.po +++ b/locales/sma/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sma\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sr/LC_MESSAGES/attributes.po b/locales/sr/LC_MESSAGES/attributes.po index 4463a04e07..26078f3a40 100644 --- a/locales/sr/LC_MESSAGES/attributes.po +++ b/locales/sr/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/st/LC_MESSAGES/attributes.po b/locales/st/LC_MESSAGES/attributes.po index 6503d306ef..1df7302ddf 100644 --- a/locales/st/LC_MESSAGES/attributes.po +++ b/locales/st/LC_MESSAGES/attributes.po @@ -10,6 +10,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sv/LC_MESSAGES/attributes.po b/locales/sv/LC_MESSAGES/attributes.po index f1e5a0c5ed..d470378d6a 100644 --- a/locales/sv/LC_MESSAGES/attributes.po +++ b/locales/sv/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/tr/LC_MESSAGES/attributes.po b/locales/tr/LC_MESSAGES/attributes.po index e700e070a4..0cdb00d1fc 100644 --- a/locales/tr/LC_MESSAGES/attributes.po +++ b/locales/tr/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ur/LC_MESSAGES/attributes.po b/locales/ur/LC_MESSAGES/attributes.po index 94a74323c9..cbd79d0dc9 100644 --- a/locales/ur/LC_MESSAGES/attributes.po +++ b/locales/ur/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ur\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/xh/LC_MESSAGES/attributes.po b/locales/xh/LC_MESSAGES/attributes.po index cce13b4203..d4cb6f30d5 100644 --- a/locales/xh/LC_MESSAGES/attributes.po +++ b/locales/xh/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: xh\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/zh/LC_MESSAGES/attributes.po b/locales/zh/LC_MESSAGES/attributes.po index 0dc6da9d81..bc2b0232ac 100644 --- a/locales/zh/LC_MESSAGES/attributes.po +++ b/locales/zh/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/zh_TW/LC_MESSAGES/attributes.po b/locales/zh_TW/LC_MESSAGES/attributes.po index 638bc43998..1bf5d9b7bf 100644 --- a/locales/zh_TW/LC_MESSAGES/attributes.po +++ b/locales/zh_TW/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: zh-tw\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/zu/LC_MESSAGES/attributes.po b/locales/zu/LC_MESSAGES/attributes.po index 8d07b90f93..ef6747aa3c 100644 --- a/locales/zu/LC_MESSAGES/attributes.po +++ b/locales/zu/LC_MESSAGES/attributes.po @@ -9,6 +9,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: zu\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/src/SimpleSAML/Locale/Translate.php b/src/SimpleSAML/Locale/Translate.php index 36716ba75a..d57c05bcb7 100644 --- a/src/SimpleSAML/Locale/Translate.php +++ b/src/SimpleSAML/Locale/Translate.php @@ -94,7 +94,7 @@ public static function translateSingularGettext(?string $original): string // try attributes.po if ($text === $original) { - $text = TranslatorFunctions::getTranslator()->dgettext("", $original); + $text = TranslatorFunctions::getTranslator()->dgettext("attributes", $original); } } } From cf865a97a330cfd9e8154b31410abe5cd481e8a6 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst Date: Thu, 28 Nov 2024 07:54:05 +0100 Subject: [PATCH 24/93] Make explicit what part of the config is wrong when non-array endpoint type encountered (#2335) --- src/SimpleSAML/Configuration.php | 9 +++++++-- tests/src/SimpleSAML/ConfigurationTest.php | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index bbd6e8e378..b778011839 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -1207,9 +1207,14 @@ public function getEndpoints(string $endpointType): array return []; } - $eps = $this->configuration[$endpointType]; - Assert::isArray($eps, Error\CriticalConfigurationError::class); + if (!is_array($eps)) { + $filename = explode('/', $loc)[0]; + throw new Error\CriticalConfigurationError( + "Endpoint of type $endpointType is not an array in $loc.", + $filename, + ); + } $eps_count = count($eps); diff --git a/tests/src/SimpleSAML/ConfigurationTest.php b/tests/src/SimpleSAML/ConfigurationTest.php index 64986f52c4..5d366620d6 100644 --- a/tests/src/SimpleSAML/ConfigurationTest.php +++ b/tests/src/SimpleSAML/ConfigurationTest.php @@ -960,7 +960,8 @@ public function testGetEndpoints(): void // define a set of exception messages to expect $msgs = [ - 'The configuration is invalid: Expected an array. Got: integer', + "The configuration ([ARRAY]['SingleSignOnService']:) is invalid: Endpoint of type " . + "SingleSignOnService is not an array in [ARRAY]['SingleSignOnService']:.", 'Expected a string or an array.', 'Missing Location.', 'Location must be a string.', From 6e30814e73f76793977f7de1f070650360c548b7 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst Date: Sun, 1 Dec 2024 15:52:52 +0000 Subject: [PATCH 25/93] Expand a bit on what is meant with endpoints change --- docs/simplesamlphp-upgrade-notes-2.3.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/simplesamlphp-upgrade-notes-2.3.md b/docs/simplesamlphp-upgrade-notes-2.3.md index e1e88b1979..fcf6068926 100644 --- a/docs/simplesamlphp-upgrade-notes-2.3.md +++ b/docs/simplesamlphp-upgrade-notes-2.3.md @@ -32,7 +32,7 @@ The use of plain-text admin-passwords has been deprecated. Generate a secure has - The language codes `pt-br` and `zh-tw` have been renamed to `pt_BR` and `zh_TW`. Please update your configuration to match the new names. -- Endpoints are now only accepted in array-style. The old string-style was deprecated for 9 yrs - already and was broken anyway. See [endpoints] +- Endpoints in metadata (e.g. "SingleSignOnLocation" and "AssertionCosumerService") can no longer be simple strings and are now only accepted in array-style. The old string-style was deprecated for 9 yrs + already and was broken anyway. See [endpoints] for the current format. [endpoints]: https://simplesamlphp.org/docs/stable/simplesamlphp-metadata-endpoints.html From 442e995a7849bd165ae2008a29f5868053baade1 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst Date: Sun, 1 Dec 2024 15:55:13 +0000 Subject: [PATCH 26/93] Update changelog --- docs/simplesamlphp-changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 9ccff53795..2f7e4afd65 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -9,6 +9,11 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD +* Attributes translations are now in the "attributes" domain (#2328). +* Add `index` directive to Nginx example configration (#2329). +* Better error message when using legacy endpoints format (#2335). +* Some minor improvements to the changes in 2.3.3. + ## Version 2.3.3 Released 2024-11-16 From d87b068d103190794966b56716248c0b8d356359 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst Date: Sun, 1 Dec 2024 16:06:13 +0000 Subject: [PATCH 27/93] Fix changelog typo --- docs/simplesamlphp-changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 2f7e4afd65..e16a9df3dc 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -10,7 +10,7 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD * Attributes translations are now in the "attributes" domain (#2328). -* Add `index` directive to Nginx example configration (#2329). +* Add `index` directive to Nginx example configuration (#2329). * Better error message when using legacy endpoints format (#2335). * Some minor improvements to the changes in 2.3.3. From 210a8f677f827b6296f6ae4c056f6297498e7762 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 2 Dec 2024 00:44:39 +0100 Subject: [PATCH 28/93] Release v2.3.4 --- composer.json | 2 +- composer.lock | 337 +++++++++--------- docs/simplesamlphp-changelog.md | 13 +- extra/simplesamlphp.spec | 2 +- modules/saml/src/Auth/Source/SP.php | 4 +- src/SimpleSAML/Configuration.php | 2 +- tests/modules/saml/src/Auth/Source/SPTest.php | 4 +- 7 files changed, 191 insertions(+), 173 deletions(-) diff --git a/composer.json b/composer.json index a808f6da24..3f0e3412d0 100644 --- a/composer.json +++ b/composer.json @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.3" + "version": "v2.3.4" } diff --git a/composer.lock b/composer.lock index 197a8cb627..4b244c3469 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": "d92254016c92c1549c1187a87107524d", + "content-hash": "059a59507eab22a221f30e0f27dc0488", "packages": [ { "name": "gettext/gettext", - "version": "v5.7.1", + "version": "v5.7.3", "source": { "type": "git", "url": "https://github.com/php-gettext/Gettext.git", - "reference": "a9f89e0cc9d9a67b422632b594b5f1afb16eccfc" + "reference": "95820f020e4f2f05e0bbaa5603e4c6ec3edc50f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/a9f89e0cc9d9a67b422632b594b5f1afb16eccfc", - "reference": "a9f89e0cc9d9a67b422632b594b5f1afb16eccfc", + "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/95820f020e4f2f05e0bbaa5603e4c6ec3edc50f1", + "reference": "95820f020e4f2f05e0bbaa5603e4c6ec3edc50f1", "shasum": "" }, "require": { @@ -62,7 +62,7 @@ "support": { "email": "oom@oscarotero.com", "issues": "https://github.com/php-gettext/Gettext/issues", - "source": "https://github.com/php-gettext/Gettext/tree/v5.7.1" + "source": "https://github.com/php-gettext/Gettext/tree/v5.7.3" }, "funding": [ { @@ -78,7 +78,7 @@ "type": "patreon" } ], - "time": "2024-07-24T22:05:18+00:00" + "time": "2024-12-01T10:18:08+00:00" }, { "name": "gettext/languages", @@ -314,16 +314,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.9.2", + "version": "v6.9.3", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "a7b17b42fa4887c92146243f3d2f4ccb962af17c" + "reference": "2f5c94fe7493efc213f643c23b1b1c249d40f47e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a7b17b42fa4887c92146243f3d2f4ccb962af17c", - "reference": "a7b17b42fa4887c92146243f3d2f4ccb962af17c", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2f5c94fe7493efc213f643c23b1b1c249d40f47e", + "reference": "2f5c94fe7493efc213f643c23b1b1c249d40f47e", "shasum": "" }, "require": { @@ -383,7 +383,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.2" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.3" }, "funding": [ { @@ -391,7 +391,7 @@ "type": "github" } ], - "time": "2024-10-09T10:07:50+00:00" + "time": "2024-11-24T18:04:13+00:00" }, { "name": "psr/cache", @@ -705,16 +705,16 @@ }, { "name": "robrichards/xmlseclibs", - "version": "3.1.1", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df" + "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/f8f19e58f26cdb42c54b214ff8a820760292f8df", - "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/2bdfd742624d739dfadbd415f00181b4a77aaf07", + "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07", "shasum": "" }, "require": { @@ -741,22 +741,22 @@ ], "support": { "issues": "https://github.com/robrichards/xmlseclibs/issues", - "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.1" + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.3" }, - "time": "2020-09-05T13:00:25+00:00" + "time": "2024-11-20T21:13:56+00:00" }, { "name": "simplesamlphp/assert", - "version": "v1.4.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/assert.git", - "reference": "cf9465870eb9fb52103e045217f6dca19aee7c84" + "reference": "f6872f002d34b8e20c19d0823b107d2c74ddfd9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/cf9465870eb9fb52103e045217f6dca19aee7c84", - "reference": "cf9465870eb9fb52103e045217f6dca19aee7c84", + "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/f6872f002d34b8e20c19d0823b107d2c74ddfd9d", + "reference": "f6872f002d34b8e20c19d0823b107d2c74ddfd9d", "shasum": "" }, "require": { @@ -800,22 +800,22 @@ "description": "A wrapper around webmozart/assert to make it useful beyond checking method arguments", "support": { "issues": "https://github.com/simplesamlphp/assert/issues", - "source": "https://github.com/simplesamlphp/assert/tree/v1.4.0" + "source": "https://github.com/simplesamlphp/assert/tree/v1.5.0" }, - "time": "2024-10-28T22:10:22+00:00" + "time": "2024-11-19T18:52:10+00:00" }, { "name": "simplesamlphp/composer-module-installer", - "version": "v1.3.4", + "version": "v1.3.5", "source": { "type": "git", "url": "https://github.com/simplesamlphp/composer-module-installer.git", - "reference": "36508ed9580a30c4d5ab0bb3c25c00d0b5d42946" + "reference": "7bf413c2d28e48dff6755d74a7e45087cf144604" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/36508ed9580a30c4d5ab0bb3c25c00d0b5d42946", - "reference": "36508ed9580a30c4d5ab0bb3c25c00d0b5d42946", + "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/7bf413c2d28e48dff6755d74a7e45087cf144604", + "reference": "7bf413c2d28e48dff6755d74a7e45087cf144604", "shasum": "" }, "require": { @@ -843,9 +843,9 @@ "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer.", "support": { "issues": "https://github.com/simplesamlphp/composer-module-installer/issues", - "source": "https://github.com/simplesamlphp/composer-module-installer/tree/v1.3.4" + "source": "https://github.com/simplesamlphp/composer-module-installer/tree/v1.3.5" }, - "time": "2023-03-08T20:58:22+00:00" + "time": "2024-11-16T09:42:27+00:00" }, { "name": "simplesamlphp/composer-xmlprovider-installer", @@ -891,16 +891,16 @@ }, { "name": "simplesamlphp/saml2", - "version": "v4.6.12", + "version": "v4.16.14", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "9545abd0d9d48388f2fa00469c5c1e0294f0303e" + "reference": "fe6c7bdda5e166e326d19d78f230d959ab51d01d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/9545abd0d9d48388f2fa00469c5c1e0294f0303e", - "reference": "9545abd0d9d48388f2fa00469c5c1e0294f0303e", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/fe6c7bdda5e166e326d19d78f230d959ab51d01d", + "reference": "fe6c7bdda5e166e326d19d78f230d959ab51d01d", "shasum": "" }, "require": { @@ -912,6 +912,9 @@ "robrichards/xmlseclibs": "^3.1.1", "webmozart/assert": "^1.9" }, + "conflict": { + "robrichards/xmlseclibs": "3.1.2" + }, "require-dev": { "mockery/mockery": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", @@ -943,22 +946,22 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.6.12" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.16.14" }, - "time": "2024-04-25T14:10:08+00:00" + "time": "2024-12-01T22:26:30+00:00" }, { "name": "simplesamlphp/simplesamlphp-assets-base", - "version": "v2.3.1", + "version": "v2.3.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-assets-base.git", - "reference": "b21b0a05cdedce3eb242b06d9bea30186bfea8e1" + "reference": "3f83d1afb16a2a807ac26f6a6a8e2f03bad75abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/b21b0a05cdedce3eb242b06d9bea30186bfea8e1", - "reference": "b21b0a05cdedce3eb242b06d9bea30186bfea8e1", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/3f83d1afb16a2a807ac26f6a6a8e2f03bad75abe", + "reference": "3f83d1afb16a2a807ac26f6a6a8e2f03bad75abe", "shasum": "" }, "require": { @@ -979,22 +982,22 @@ "description": "Assets for the SimpleSAMLphp main repository", "support": { "issues": "https://github.com/simplesamlphp/simplesamlphp-assets-base/issues", - "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.1" + "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.2" }, - "time": "2024-10-13T01:14:49+00:00" + "time": "2024-12-01T01:26:55+00:00" }, { "name": "simplesamlphp/xml-common", - "version": "v1.18.5", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-common.git", - "reference": "daed5738bc22067c9b0abec2d2b877dc8a1d7647" + "reference": "9cf986ee7d97c02feb992c78f51024f45b068c19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/daed5738bc22067c9b0abec2d2b877dc8a1d7647", - "reference": "daed5738bc22067c9b0abec2d2b877dc8a1d7647", + "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/9cf986ee7d97c02feb992c78f51024f45b068c19", + "reference": "9cf986ee7d97c02feb992c78f51024f45b068c19", "shasum": "" }, "require": { @@ -1042,20 +1045,20 @@ "issues": "https://github.com/simplesamlphp/xml-common/issues", "source": "https://github.com/simplesamlphp/xml-common" }, - "time": "2024-11-06T09:36:15+00:00" + "time": "2024-12-01T23:01:07+00:00" }, { "name": "simplesamlphp/xml-security", - "version": "v1.9.5", + "version": "v1.10.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "91e31f5930305e84ad92d573faf817abc8ad09c9" + "reference": "2f478b2308b06c10542488ce9690a98baaf2fdfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/91e31f5930305e84ad92d573faf817abc8ad09c9", - "reference": "91e31f5930305e84ad92d573faf817abc8ad09c9", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/2f478b2308b06c10542488ce9690a98baaf2fdfa", + "reference": "2f478b2308b06c10542488ce9690a98baaf2fdfa", "shasum": "" }, "require": { @@ -1066,8 +1069,8 @@ "ext-pcre": "*", "ext-spl": "*", "php": "^8.1", - "simplesamlphp/assert": "^1.3", - "simplesamlphp/xml-common": "^1.18" + "simplesamlphp/assert": "^1.5", + "simplesamlphp/xml-common": "^1.20.0" }, "require-dev": { "simplesamlphp/simplesamlphp-test-framework": "^1.7" @@ -1104,22 +1107,22 @@ ], "support": { "issues": "https://github.com/simplesamlphp/xml-security/issues", - "source": "https://github.com/simplesamlphp/xml-security/tree/v1.9.5" + "source": "https://github.com/simplesamlphp/xml-security/tree/v1.10.0" }, - "time": "2024-09-16T21:10:04+00:00" + "time": "2024-12-01T23:34:04+00:00" }, { "name": "symfony/cache", - "version": "v6.4.14", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613" + "reference": "70d60e9a3603108563010f8592dff15a6f15dfae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/36fb8aa88833708e9f29014b6f15fac051a8b613", - "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613", + "url": "https://api.github.com/repos/symfony/cache/zipball/70d60e9a3603108563010f8592dff15a6f15dfae", + "reference": "70d60e9a3603108563010f8592dff15a6f15dfae", "shasum": "" }, "require": { @@ -1186,7 +1189,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.14" + "source": "https://github.com/symfony/cache/tree/v6.4.16" }, "funding": [ { @@ -1202,20 +1205,20 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2024-11-20T10:10:54+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197" + "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197", - "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b", + "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b", "shasum": "" }, "require": { @@ -1262,7 +1265,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.5.1" }, "funding": [ { @@ -1278,7 +1281,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/config", @@ -1451,16 +1454,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v6.4.15", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36" + "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/70ab1f65a4516ef741e519ea938e6aa465e6aa36", - "reference": "70ab1f65a4516ef741e519ea938e6aa465e6aa36", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7a379d8871f6a36f01559c14e11141cc02eb8dc8", + "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8", "shasum": "" }, "require": { @@ -1512,7 +1515,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.15" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.16" }, "funding": [ { @@ -1528,20 +1531,20 @@ "type": "tidelift" } ], - "time": "2024-11-09T06:56:25+00:00" + "time": "2024-11-25T14:52:46+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "shasum": "" }, "require": { @@ -1579,7 +1582,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" }, "funding": [ { @@ -1595,7 +1598,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/error-handler", @@ -1754,16 +1757,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", - "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", "shasum": "" }, "require": { @@ -1810,7 +1813,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" }, "funding": [ { @@ -1826,7 +1829,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/filesystem", @@ -2109,16 +2112,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.15", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6" + "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", - "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/431771b7a6f662f1575b3cfc8fd7617aa9864d57", + "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57", "shasum": "" }, "require": { @@ -2166,7 +2169,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.15" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.16" }, "funding": [ { @@ -2182,20 +2185,20 @@ "type": "tidelift" } ], - "time": "2024-11-08T16:09:24+00:00" + "time": "2024-11-13T18:58:10+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.15", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5" + "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5", - "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", + "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", "shasum": "" }, "require": { @@ -2280,7 +2283,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.15" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.16" }, "funding": [ { @@ -2296,7 +2299,7 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:57:37+00:00" + "time": "2024-11-27T12:49:36+00:00" }, { "name": "symfony/intl", @@ -3009,16 +3012,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.13", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278" + "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278", - "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278", + "url": "https://api.github.com/repos/symfony/routing/zipball/91e02e606b4b705c2f4fb42f7e7708b7923a3220", + "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220", "shasum": "" }, "require": { @@ -3072,7 +3075,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.13" + "source": "https://github.com/symfony/routing/tree/v6.4.16" }, "funding": [ { @@ -3088,20 +3091,20 @@ "type": "tidelift" } ], - "time": "2024-10-01T08:30:56+00:00" + "time": "2024-11-13T15:31:34+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", - "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "shasum": "" }, "require": { @@ -3155,7 +3158,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" }, "funding": [ { @@ -3171,7 +3174,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/string", @@ -3261,16 +3264,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v3.5.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a" + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", - "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", "shasum": "" }, "require": { @@ -3319,7 +3322,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" }, "funding": [ { @@ -3335,20 +3338,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:32:20+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/twig-bridge", - "version": "v6.4.13", + "version": "v6.4.16", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "ec3511eef0576f378b2758da9e1c157086babd59" + "reference": "32ec012ed4f6426441a66014471bdb26674744be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/ec3511eef0576f378b2758da9e1c157086babd59", - "reference": "ec3511eef0576f378b2758da9e1c157086babd59", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/32ec012ed4f6426441a66014471bdb26674744be", + "reference": "32ec012ed4f6426441a66014471bdb26674744be", "shasum": "" }, "require": { @@ -3428,7 +3431,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.13" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.16" }, "funding": [ { @@ -3444,7 +3447,7 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2024-11-25T11:59:11+00:00" }, { "name": "symfony/var-dumper", @@ -3682,16 +3685,16 @@ }, { "name": "twig/intl-extra", - "version": "v3.13.0", + "version": "v3.16.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "1b8d78c5db08bdc61015fd55009d2e84b3aa7e38" + "reference": "4eeab2a3f8d04d1838be7251ab2d183f817aea7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/1b8d78c5db08bdc61015fd55009d2e84b3aa7e38", - "reference": "1b8d78c5db08bdc61015fd55009d2e84b3aa7e38", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/4eeab2a3f8d04d1838be7251ab2d183f817aea7b", + "reference": "4eeab2a3f8d04d1838be7251ab2d183f817aea7b", "shasum": "" }, "require": { @@ -3730,7 +3733,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.13.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.16.0" }, "funding": [ { @@ -3742,20 +3745,20 @@ "type": "tidelift" } ], - "time": "2024-09-03T13:08:40+00:00" + "time": "2024-11-20T13:19:52+00:00" }, { "name": "twig/twig", - "version": "v3.14.2", + "version": "v3.16.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" + "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", - "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/475ad2dc97d65d8631393e721e7e44fb544f0561", + "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561", "shasum": "" }, "require": { @@ -3766,6 +3769,7 @@ "symfony/polyfill-php81": "^1.29" }, "require-dev": { + "phpstan/phpstan": "^2.0", "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, @@ -3809,7 +3813,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.2" + "source": "https://github.com/twigphp/Twig/tree/v3.16.0" }, "funding": [ { @@ -3821,7 +3825,7 @@ "type": "tidelift" } ], - "time": "2024-11-07T12:36:22+00:00" + "time": "2024-11-29T08:27:05+00:00" }, { "name": "webmozart/assert", @@ -4403,16 +4407,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.10", + "version": "1.12.12", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "fc463b5d0fe906dcf19689be692c65c50406a071" + "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/fc463b5d0fe906dcf19689be692c65c50406a071", - "reference": "fc463b5d0fe906dcf19689be692c65c50406a071", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", + "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", "shasum": "" }, "require": { @@ -4457,7 +4461,7 @@ "type": "github" } ], - "time": "2024-11-11T15:37:09+00:00" + "time": "2024-11-28T22:13:23+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -4933,16 +4937,16 @@ }, { "name": "predis/predis", - "version": "v2.2.2", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1" + "reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", - "reference": "b1d3255ed9ad4d7254f9f9bba386c99f4bb983d1", + "url": "https://api.github.com/repos/predis/predis/zipball/bac46bfdb78cd6e9c7926c697012aae740cb9ec9", + "reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9", "shasum": "" }, "require": { @@ -4951,7 +4955,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.3", "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^8.0 || ~9.4.4" + "phpunit/phpunit": "^8.0 || ^9.4" }, "suggest": { "ext-relay": "Faster connection with in-memory caching (>=0.6.2)" @@ -4982,7 +4986,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v2.2.2" + "source": "https://github.com/predis/predis/tree/v2.3.0" }, "funding": [ { @@ -4990,7 +4994,7 @@ "type": "github" } ], - "time": "2023-09-13T16:42:03+00:00" + "time": "2024-11-21T20:00:02+00:00" }, { "name": "sebastian/cli-parser", @@ -5910,16 +5914,16 @@ }, { "name": "simplesamlphp/saml2-legacy", - "version": "v4.6.12", + "version": "v4.16.14", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2-legacy.git", - "reference": "ee0ac34f4396306f877c6cea07f28fb6879ed37c" + "reference": "a9ee3a0510780d157ee8e78e7d429e47d736a208" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/ee0ac34f4396306f877c6cea07f28fb6879ed37c", - "reference": "ee0ac34f4396306f877c6cea07f28fb6879ed37c", + "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/a9ee3a0510780d157ee8e78e7d429e47d736a208", + "reference": "a9ee3a0510780d157ee8e78e7d429e47d736a208", "shasum": "" }, "require": { @@ -5931,6 +5935,9 @@ "robrichards/xmlseclibs": "^3.1.1", "webmozart/assert": "^1.9" }, + "conflict": { + "robrichards/xmlseclibs": "3.1.2" + }, "require-dev": { "mockery/mockery": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", @@ -5961,9 +5968,9 @@ ], "description": "SAML2 PHP library from SimpleSAMLphp", "support": { - "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.6.12" + "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.16.14" }, - "time": "2024-04-30T09:01:00+00:00" + "time": "2024-12-01T22:26:03+00:00" }, { "name": "simplesamlphp/simplesamlphp-module-adfs", @@ -6146,16 +6153,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.0", + "version": "3.11.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "70c08f8d20c0eb4fe56f26644dd94dae76a7f450" + "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/70c08f8d20c0eb4fe56f26644dd94dae76a7f450", - "reference": "70c08f8d20c0eb4fe56f26644dd94dae76a7f450", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", + "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", "shasum": "" }, "require": { @@ -6222,20 +6229,20 @@ "type": "open_collective" } ], - "time": "2024-11-12T09:53:29+00:00" + "time": "2024-11-16T12:02:36+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v7.1.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "c6b9d8f52d3e276bedb49612aa4a2a046171287f" + "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c6b9d8f52d3e276bedb49612aa4a2a046171287f", - "reference": "c6b9d8f52d3e276bedb49612aa4a2a046171287f", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2bbde92ab25a0e2c88160857af7be9db5da0d145", + "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145", "shasum": "" }, "require": { @@ -6255,8 +6262,8 @@ "type": "symfony-bridge", "extra": { "thanks": { - "name": "phpunit/phpunit", - "url": "https://github.com/sebastianbergmann/phpunit" + "url": "https://github.com/sebastianbergmann/phpunit", + "name": "phpunit/phpunit" } }, "autoload": { @@ -6288,7 +6295,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.1.6" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.2.0" }, "funding": [ { @@ -6304,7 +6311,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-11-13T16:15:23+00:00" }, { "name": "symfony/translation", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index e16a9df3dc..e8de5ee507 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,10 +5,21 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.4 +## Version 2.3.5 Released TBD +## Version 2.3.4 + +Released 2024-12-02 + +`Security` + +* A security bug was patched in the `saml2-library` that allowed for XXE during the parsing + of SAML2-messages (CVE-2024-52596) + +`Other fixes` + * Attributes translations are now in the "attributes" domain (#2328). * Add `index` directive to Nginx example configuration (#2329). * Better error message when using legacy endpoints format (#2335). diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index a725546e1a..63d7f76ba0 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.3 +%define version 2.3.4 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/modules/saml/src/Auth/Source/SP.php b/modules/saml/src/Auth/Source/SP.php index a512321114..0d1f61992b 100644 --- a/modules/saml/src/Auth/Source/SP.php +++ b/modules/saml/src/Auth/Source/SP.php @@ -580,8 +580,8 @@ private function startSSO2(Configuration $idpMetadata, array $state): void /* Only check for real info for Scoping element if we are going to send Scoping element */ if ($this->disable_scoping !== true && $idpMetadata->getOptionalBoolean('disable_scoping', false) !== true) { - if (isset($state['IDPList'])) { - $ar->setIDPList($state['IDPList']); + if (isset($state['saml:IDPList'])) { + $ar->setIDPList($state['saml:IDPList']); } elseif (!empty($this->metadata->getOptionalArray('IDPList', []))) { $ar->setIDPList($this->metadata->getArray('IDPList')); } elseif (!empty($idpMetadata->getOptionalArray('IDPList', []))) { diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index b778011839..88d42c9d16 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.3'; + public const VERSION = '2.3.4'; /** * A default value which means that the given option is required. diff --git a/tests/modules/saml/src/Auth/Source/SPTest.php b/tests/modules/saml/src/Auth/Source/SPTest.php index cea9cd825b..304477acd9 100644 --- a/tests/modules/saml/src/Auth/Source/SPTest.php +++ b/tests/modules/saml/src/Auth/Source/SPTest.php @@ -476,7 +476,7 @@ public function testMetadataHostedBasicConfig(): void public function testSPIdpListScoping(): void { $ar = $this->createAuthnRequest([ - 'IDPList' => ['https://scope.example.com'], + 'saml:IDPList' => ['https://scope.example.com'], ]); $this->assertContains( @@ -542,7 +542,7 @@ public function testSPIdpListScopingOrder( $info = ['AuthId' => 'default-sp']; $state = []; if (isset($stateIdpList)) { - $state['IDPList'] = $stateIdpList; + $state['saml:IDPList'] = $stateIdpList; } $config = ['entityID' => 'urn:x-simplesamlphp:example-sp']; From cb919bccecc95aee5da0f0cc526109e2c3b9f6e2 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 2 Dec 2024 10:24:01 +0100 Subject: [PATCH 29/93] Revert "i18n move attributes into an attributes domain (#2328)" This reverts commit e50dc5341d0615aae9362e8a2b6bf2bc05725dfa. --- bin/translateAttributes.php | 1 - locales/af/LC_MESSAGES/attributes.po | 1 - locales/ar/LC_MESSAGES/attributes.po | 1 - locales/ca/LC_MESSAGES/attributes.po | 1 - locales/cs/LC_MESSAGES/attributes.po | 1 - locales/da/LC_MESSAGES/attributes.po | 1 - locales/de/LC_MESSAGES/attributes.po | 1 - locales/el/LC_MESSAGES/attributes.po | 1 - locales/en/LC_MESSAGES/attributes.po | 2 -- locales/es/LC_MESSAGES/attributes.po | 1 - locales/et/LC_MESSAGES/attributes.po | 1 - locales/eu/LC_MESSAGES/attributes.po | 1 - locales/fa/LC_MESSAGES/attributes.po | 1 - locales/fi/LC_MESSAGES/attributes.po | 1 - locales/fr/LC_MESSAGES/attributes.po | 1 - locales/he/LC_MESSAGES/attributes.po | 1 - locales/hr/LC_MESSAGES/attributes.po | 1 - locales/hu/LC_MESSAGES/attributes.po | 1 - locales/id/LC_MESSAGES/attributes.po | 1 - locales/it/LC_MESSAGES/attributes.po | 1 - locales/ja/LC_MESSAGES/attributes.po | 1 - locales/lb/LC_MESSAGES/attributes.po | 1 - locales/lt/LC_MESSAGES/attributes.po | 1 - locales/lv/LC_MESSAGES/attributes.po | 1 - locales/nb/LC_MESSAGES/attributes.po | 1 - locales/nl/LC_MESSAGES/attributes.po | 1 - locales/nn/LC_MESSAGES/attributes.po | 1 - locales/no/LC_MESSAGES/attributes.po | 1 - locales/pl/LC_MESSAGES/attributes.po | 1 - locales/pt/LC_MESSAGES/attributes.po | 1 - locales/pt_BR/LC_MESSAGES/attributes.po | 1 - locales/ro/LC_MESSAGES/attributes.po | 1 - locales/ru/LC_MESSAGES/attributes.po | 1 - locales/se/LC_MESSAGES/attributes.po | 1 - locales/sk/LC_MESSAGES/attributes.po | 1 - locales/sl/LC_MESSAGES/attributes.po | 1 - locales/sma/LC_MESSAGES/attributes.po | 1 - locales/sr/LC_MESSAGES/attributes.po | 1 - locales/st/LC_MESSAGES/attributes.po | 1 - locales/sv/LC_MESSAGES/attributes.po | 1 - locales/tr/LC_MESSAGES/attributes.po | 1 - locales/ur/LC_MESSAGES/attributes.po | 1 - locales/xh/LC_MESSAGES/attributes.po | 1 - locales/zh/LC_MESSAGES/attributes.po | 1 - locales/zh_TW/LC_MESSAGES/attributes.po | 1 - locales/zu/LC_MESSAGES/attributes.po | 1 - src/SimpleSAML/Locale/Translate.php | 2 +- 47 files changed, 1 insertion(+), 48 deletions(-) diff --git a/bin/translateAttributes.php b/bin/translateAttributes.php index b5a3d7f2d6..6ece51329f 100755 --- a/bin/translateAttributes.php +++ b/bin/translateAttributes.php @@ -121,6 +121,5 @@ $strings->setLanguage($language); echo "Saving translations to " . $base . "locales/" . $language . "/LC_MESSAGES/attributes.po\n"; - $strings->setDomain("attributes"); Gettext\Generators\Po::toFile($strings, $base . 'locales/' . $language . '/LC_MESSAGES/attributes.po'); } diff --git a/locales/af/LC_MESSAGES/attributes.po b/locales/af/LC_MESSAGES/attributes.po index 7e71ea10cb..30634432a7 100644 --- a/locales/af/LC_MESSAGES/attributes.po +++ b/locales/af/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: af\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ar/LC_MESSAGES/attributes.po b/locales/ar/LC_MESSAGES/attributes.po index bad6f140b4..e5a3246ee9 100644 --- a/locales/ar/LC_MESSAGES/attributes.po +++ b/locales/ar/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ar\n" "Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((n % 100 >= 3 && n % 100 <= 10) ? 3 : ((n % 100 >= 11 && n % 100 <= 99) ? 4 : 5))));\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ca/LC_MESSAGES/attributes.po b/locales/ca/LC_MESSAGES/attributes.po index df84b3cbf2..1bb59063a9 100644 --- a/locales/ca/LC_MESSAGES/attributes.po +++ b/locales/ca/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ca\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/cs/LC_MESSAGES/attributes.po b/locales/cs/LC_MESSAGES/attributes.po index 92268fdbbb..4145772329 100644 --- a/locales/cs/LC_MESSAGES/attributes.po +++ b/locales/cs/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: cs\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n >= 2 && n <= 4) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/da/LC_MESSAGES/attributes.po b/locales/da/LC_MESSAGES/attributes.po index 6ea2c02606..b2440db468 100644 --- a/locales/da/LC_MESSAGES/attributes.po +++ b/locales/da/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: da\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/de/LC_MESSAGES/attributes.po b/locales/de/LC_MESSAGES/attributes.po index 110c6d0875..a72cd00b8f 100644 --- a/locales/de/LC_MESSAGES/attributes.po +++ b/locales/de/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/el/LC_MESSAGES/attributes.po b/locales/el/LC_MESSAGES/attributes.po index 8ae4e097ad..1caa092673 100644 --- a/locales/el/LC_MESSAGES/attributes.po +++ b/locales/el/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/en/LC_MESSAGES/attributes.po b/locales/en/LC_MESSAGES/attributes.po index c3a2ac3e4b..87987ba8ba 100644 --- a/locales/en/LC_MESSAGES/attributes.po +++ b/locales/en/LC_MESSAGES/attributes.po @@ -9,8 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" - msgid "aRecord" msgstr "aRecord" diff --git a/locales/es/LC_MESSAGES/attributes.po b/locales/es/LC_MESSAGES/attributes.po index 749dedac1e..b90edbaf59 100644 --- a/locales/es/LC_MESSAGES/attributes.po +++ b/locales/es/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/et/LC_MESSAGES/attributes.po b/locales/et/LC_MESSAGES/attributes.po index 66780613f6..262432c553 100644 --- a/locales/et/LC_MESSAGES/attributes.po +++ b/locales/et/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: et\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/eu/LC_MESSAGES/attributes.po b/locales/eu/LC_MESSAGES/attributes.po index 230a780eb0..223120040d 100644 --- a/locales/eu/LC_MESSAGES/attributes.po +++ b/locales/eu/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/fa/LC_MESSAGES/attributes.po b/locales/fa/LC_MESSAGES/attributes.po index 5617ec188e..29364f1a86 100644 --- a/locales/fa/LC_MESSAGES/attributes.po +++ b/locales/fa/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/fi/LC_MESSAGES/attributes.po b/locales/fi/LC_MESSAGES/attributes.po index f2aec5264b..cfaa83efaa 100644 --- a/locales/fi/LC_MESSAGES/attributes.po +++ b/locales/fi/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fi\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/fr/LC_MESSAGES/attributes.po b/locales/fr/LC_MESSAGES/attributes.po index 1035eadf58..e4267a5af8 100644 --- a/locales/fr/LC_MESSAGES/attributes.po +++ b/locales/fr/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/he/LC_MESSAGES/attributes.po b/locales/he/LC_MESSAGES/attributes.po index 376224f11f..99f6147444 100644 --- a/locales/he/LC_MESSAGES/attributes.po +++ b/locales/he/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: he\n" "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3));\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/hr/LC_MESSAGES/attributes.po b/locales/hr/LC_MESSAGES/attributes.po index 75a0a7695a..ff787bb93f 100644 --- a/locales/hr/LC_MESSAGES/attributes.po +++ b/locales/hr/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: hr\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/hu/LC_MESSAGES/attributes.po b/locales/hu/LC_MESSAGES/attributes.po index ca6300acca..34b2c4536d 100644 --- a/locales/hu/LC_MESSAGES/attributes.po +++ b/locales/hu/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/id/LC_MESSAGES/attributes.po b/locales/id/LC_MESSAGES/attributes.po index c6c211610c..ff63bab785 100644 --- a/locales/id/LC_MESSAGES/attributes.po +++ b/locales/id/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/it/LC_MESSAGES/attributes.po b/locales/it/LC_MESSAGES/attributes.po index 0f34cb1765..e7ddfd7e75 100644 --- a/locales/it/LC_MESSAGES/attributes.po +++ b/locales/it/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ja/LC_MESSAGES/attributes.po b/locales/ja/LC_MESSAGES/attributes.po index f459f2e54b..8de7fe1abd 100644 --- a/locales/ja/LC_MESSAGES/attributes.po +++ b/locales/ja/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/lb/LC_MESSAGES/attributes.po b/locales/lb/LC_MESSAGES/attributes.po index cc9d35f537..11a4db4835 100644 --- a/locales/lb/LC_MESSAGES/attributes.po +++ b/locales/lb/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: lb\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/lt/LC_MESSAGES/attributes.po b/locales/lt/LC_MESSAGES/attributes.po index 02d6438b0e..293e30b6ef 100644 --- a/locales/lt/LC_MESSAGES/attributes.po +++ b/locales/lt/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: lt\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/lv/LC_MESSAGES/attributes.po b/locales/lv/LC_MESSAGES/attributes.po index 100c5435e1..9eca6a241a 100644 --- a/locales/lv/LC_MESSAGES/attributes.po +++ b/locales/lv/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: lv\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/nb/LC_MESSAGES/attributes.po b/locales/nb/LC_MESSAGES/attributes.po index bfe8dfa7b6..dc076ea98c 100644 --- a/locales/nb/LC_MESSAGES/attributes.po +++ b/locales/nb/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/nl/LC_MESSAGES/attributes.po b/locales/nl/LC_MESSAGES/attributes.po index dbc2f98c70..73e3a7612d 100644 --- a/locales/nl/LC_MESSAGES/attributes.po +++ b/locales/nl/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/nn/LC_MESSAGES/attributes.po b/locales/nn/LC_MESSAGES/attributes.po index 07ab4160db..5d759c4ab5 100644 --- a/locales/nn/LC_MESSAGES/attributes.po +++ b/locales/nn/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nn\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/no/LC_MESSAGES/attributes.po b/locales/no/LC_MESSAGES/attributes.po index bfe8dfa7b6..dc076ea98c 100644 --- a/locales/no/LC_MESSAGES/attributes.po +++ b/locales/no/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/pl/LC_MESSAGES/attributes.po b/locales/pl/LC_MESSAGES/attributes.po index 3f73404b75..6a9ff83314 100644 --- a/locales/pl/LC_MESSAGES/attributes.po +++ b/locales/pl/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/pt/LC_MESSAGES/attributes.po b/locales/pt/LC_MESSAGES/attributes.po index 4b8ceb88e4..b296bb6038 100644 --- a/locales/pt/LC_MESSAGES/attributes.po +++ b/locales/pt/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pt\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/pt_BR/LC_MESSAGES/attributes.po b/locales/pt_BR/LC_MESSAGES/attributes.po index 6b64b2ae25..172249039a 100644 --- a/locales/pt_BR/LC_MESSAGES/attributes.po +++ b/locales/pt_BR/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: pt-br\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ro/LC_MESSAGES/attributes.po b/locales/ro/LC_MESSAGES/attributes.po index 259ddd93d3..95041a7f41 100644 --- a/locales/ro/LC_MESSAGES/attributes.po +++ b/locales/ro/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 0 || n != 1 && n % 100 >= 1 && n % 100 <= 19) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ru/LC_MESSAGES/attributes.po b/locales/ru/LC_MESSAGES/attributes.po index 672fb3c17a..08dae63d5f 100644 --- a/locales/ru/LC_MESSAGES/attributes.po +++ b/locales/ru/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/se/LC_MESSAGES/attributes.po b/locales/se/LC_MESSAGES/attributes.po index 5667b294de..869a18cdde 100644 --- a/locales/se/LC_MESSAGES/attributes.po +++ b/locales/se/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: se\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sk/LC_MESSAGES/attributes.po b/locales/sk/LC_MESSAGES/attributes.po index ac79224f42..b3585bbd03 100644 --- a/locales/sk/LC_MESSAGES/attributes.po +++ b/locales/sk/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n == 1 ? 0 : (n >= 2 && n <= 4 ? 1 : 2))\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sl/LC_MESSAGES/attributes.po b/locales/sl/LC_MESSAGES/attributes.po index 84be217555..4a46bc0d9a 100644 --- a/locales/sl/LC_MESSAGES/attributes.po +++ b/locales/sl/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 || n % 100 == 4) ? 2 : 3));\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sma/LC_MESSAGES/attributes.po b/locales/sma/LC_MESSAGES/attributes.po index a404d22048..8b9d97c2be 100644 --- a/locales/sma/LC_MESSAGES/attributes.po +++ b/locales/sma/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sma\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sr/LC_MESSAGES/attributes.po b/locales/sr/LC_MESSAGES/attributes.po index 26078f3a40..4463a04e07 100644 --- a/locales/sr/LC_MESSAGES/attributes.po +++ b/locales/sr/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/st/LC_MESSAGES/attributes.po b/locales/st/LC_MESSAGES/attributes.po index 1df7302ddf..6503d306ef 100644 --- a/locales/st/LC_MESSAGES/attributes.po +++ b/locales/st/LC_MESSAGES/attributes.po @@ -10,7 +10,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: en\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/sv/LC_MESSAGES/attributes.po b/locales/sv/LC_MESSAGES/attributes.po index d470378d6a..f1e5a0c5ed 100644 --- a/locales/sv/LC_MESSAGES/attributes.po +++ b/locales/sv/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/tr/LC_MESSAGES/attributes.po b/locales/tr/LC_MESSAGES/attributes.po index 0cdb00d1fc..e700e070a4 100644 --- a/locales/tr/LC_MESSAGES/attributes.po +++ b/locales/tr/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/ur/LC_MESSAGES/attributes.po b/locales/ur/LC_MESSAGES/attributes.po index cbd79d0dc9..94a74323c9 100644 --- a/locales/ur/LC_MESSAGES/attributes.po +++ b/locales/ur/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: ur\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/xh/LC_MESSAGES/attributes.po b/locales/xh/LC_MESSAGES/attributes.po index d4cb6f30d5..cce13b4203 100644 --- a/locales/xh/LC_MESSAGES/attributes.po +++ b/locales/xh/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: xh\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/zh/LC_MESSAGES/attributes.po b/locales/zh/LC_MESSAGES/attributes.po index bc2b0232ac..0dc6da9d81 100644 --- a/locales/zh/LC_MESSAGES/attributes.po +++ b/locales/zh/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/zh_TW/LC_MESSAGES/attributes.po b/locales/zh_TW/LC_MESSAGES/attributes.po index 1bf5d9b7bf..638bc43998 100644 --- a/locales/zh_TW/LC_MESSAGES/attributes.po +++ b/locales/zh_TW/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: zh-tw\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/locales/zu/LC_MESSAGES/attributes.po b/locales/zu/LC_MESSAGES/attributes.po index ef6747aa3c..8d07b90f93 100644 --- a/locales/zu/LC_MESSAGES/attributes.po +++ b/locales/zu/LC_MESSAGES/attributes.po @@ -9,7 +9,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language: zu\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Domain: attributes\n" msgid "aRecord" msgstr "aRecord" diff --git a/src/SimpleSAML/Locale/Translate.php b/src/SimpleSAML/Locale/Translate.php index d57c05bcb7..36716ba75a 100644 --- a/src/SimpleSAML/Locale/Translate.php +++ b/src/SimpleSAML/Locale/Translate.php @@ -94,7 +94,7 @@ public static function translateSingularGettext(?string $original): string // try attributes.po if ($text === $original) { - $text = TranslatorFunctions::getTranslator()->dgettext("attributes", $original); + $text = TranslatorFunctions::getTranslator()->dgettext("", $original); } } } From 406cc3a0be3b154b2b0c08a48f30705332c729fb Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 2 Dec 2024 12:51:07 +0100 Subject: [PATCH 30/93] Release v2.3.5 --- composer.json | 4 ++-- composer.lock | 2 +- docs/simplesamlphp-changelog.md | 8 +++++++- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 3f0e3412d0..372f8a5450 100644 --- a/composer.json +++ b/composer.json @@ -63,7 +63,7 @@ "psr/log": "^3.0", "simplesamlphp/assert": "^1.1", "simplesamlphp/composer-module-installer": "^1.3", - "simplesamlphp/saml2": "^4.6", + "simplesamlphp/saml2": "^4.16", "simplesamlphp/simplesamlphp-assets-base": "~2.3.0", "simplesamlphp/xml-security": "^1.7", "symfony/cache": "^6.4", @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.4" + "version": "v2.3.5" } diff --git a/composer.lock b/composer.lock index 4b244c3469..1fde6d4c88 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "059a59507eab22a221f30e0f27dc0488", + "content-hash": "eb8044a5f31df9017f83ac696a2e46a4", "packages": [ { "name": "gettext/gettext", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index e8de5ee507..76df903fd3 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,10 +5,16 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.5 +## Version 2.3.6 Released TBD +## Version 2.3.5 + +Released 2024-12-02 + +* Fix a regression that would cause the translations for modules to revert to English + ## Version 2.3.4 Released 2024-12-02 diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index 63d7f76ba0..601fccbd50 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.4 +%define version 2.3.5 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 88d42c9d16..3d913a0462 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.4'; + public const VERSION = '2.3.5'; /** * A default value which means that the given option is required. From 00ce1a9a6ce7edb72d73eda14970203e8230bb9f Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 2 Dec 2024 23:07:48 +0100 Subject: [PATCH 31/93] Upgrade dependencies --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 1fde6d4c88..fa0c4d4e8d 100644 --- a/composer.lock +++ b/composer.lock @@ -6034,16 +6034,16 @@ }, { "name": "simplesamlphp/simplesamlphp-test-framework", - "version": "v1.7.10", + "version": "v1.8.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-test-framework.git", - "reference": "157dbad53f1fc10610b23e9457eec20d0e4ad5aa" + "reference": "9bf90987925240de593afb1f929a9d373de86a13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/157dbad53f1fc10610b23e9457eec20d0e4ad5aa", - "reference": "157dbad53f1fc10610b23e9457eec20d0e4ad5aa", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/9bf90987925240de593afb1f929a9d373de86a13", + "reference": "9bf90987925240de593afb1f929a9d373de86a13", "shasum": "" }, "require": { @@ -6058,7 +6058,7 @@ "symfony/phpunit-bridge": "^6.4 || ^7.0" }, "require-dev": { - "simplesamlphp/simplesamlphp": "^2" + "simplesamlphp/simplesamlphp": "^2.2" }, "type": "project", "autoload": { @@ -6084,7 +6084,7 @@ "issues": "https://github.com/simplesamlphp/simplesamlphp-test-framework/issues", "source": "https://github.com/simplesamlphp/simplesamlphp-test-framework" }, - "time": "2024-08-19T08:33:29+00:00" + "time": "2024-12-02T22:00:54+00:00" }, { "name": "slevomat/coding-standard", From 6bc927bee575655c9c71b574008bfc57e1461afe Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Tue, 17 Dec 2024 08:02:50 +1000 Subject: [PATCH 32/93] Docs: Clarify that the Simple API needs a saml:SP (#2356) * Docs: Clarify that the Simple API needs a saml:SP Perhaps here I could reference sspsmall once that is in better shape to help small deployments get up and runnnig. * Lint! emacs line wrapping vs the linter. Space at the end of the line is diabolical, some say. --- docs/simplesamlphp-sp-api.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/simplesamlphp-sp-api.md b/docs/simplesamlphp-sp-api.md index 76d7fe76fc..dcb31860bd 100644 --- a/docs/simplesamlphp-sp-api.md +++ b/docs/simplesamlphp-sp-api.md @@ -29,8 +29,14 @@ The constructor initializes a \SimpleSAML\Auth\Simple object. `Parameters`: -It has a single parameter, which is the ID of the authentication source that should be used. -This authentication source must exist in `config/authsources.php`. +It has a single parameter, which is the ID of the authentication +source that should be used. This authentication source must exist in +`config/authsources.php` and be of type saml:SP. Note that +authentication methods such as `ldap:Ldap` and `sqlauth` are defined +in `config/authsources.php` but those are only to be used by an IdP. +A normal setup would have your application talking to an SP, that SP +talking with an IdP, and that IdP using an authentication method to +authenticate the user. `Example`: From 5bc7fab997443c30ae4a59e4ea3b40b6af76fde6 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 18 Dec 2024 20:11:20 +0100 Subject: [PATCH 33/93] Fix link --- docs/simplesamlphp-install-repo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/simplesamlphp-install-repo.md b/docs/simplesamlphp-install-repo.md index e003dec07e..2ce34275c3 100644 --- a/docs/simplesamlphp-install-repo.md +++ b/docs/simplesamlphp-install-repo.md @@ -6,7 +6,7 @@ These are some notes about running SimpleSAMLphp from the repository. Prerequisites ------------- -Review the [prerequisites](../simplesamlphp-install) from the main installation guide. +Review the [prerequisites](simplesamlphp-install) from the main installation guide. Installing from git ------------------- From a720709658abc06e185cbd536abc58de7dcab010 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst Date: Fri, 3 Jan 2025 14:40:23 +0100 Subject: [PATCH 34/93] Happy new year --- COPYING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COPYING b/COPYING index b83b1c411c..f1d41affca 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright 2007-2020 UNINETT AS, 2021-2023 SimpleSAMLphp +Copyright 2007-2020 UNINETT AS, 2021-2024 SimpleSAMLphp SimpleSAMLphp is licensed under the CC-GNU LGPL version 2.1. http://creativecommons.org/licenses/LGPL/2.1/ From 38d4b77e860d3ed1e820ed2342677ff9c8b4714d Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 6 Jan 2025 23:22:35 +0100 Subject: [PATCH 35/93] PHP 8.4 deprecations: fix cases of implicitly marked nullable --- docs/simplesamlphp-changelog.md | 2 ++ src/SimpleSAML/Error/Error.php | 4 ++-- src/SimpleSAML/Error/Exception.php | 2 +- src/SimpleSAML/Locale/Localization.php | 2 +- src/SimpleSAML/Module.php | 2 +- src/SimpleSAML/Session.php | 6 +++--- src/SimpleSAML/SessionHandler.php | 2 +- src/SimpleSAML/SessionHandlerPHP.php | 4 ++-- src/SimpleSAML/Utils/HTTP.php | 6 +++--- src/SimpleSAML/Utils/System.php | 2 +- 10 files changed, 17 insertions(+), 15 deletions(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 76df903fd3..093ad4e999 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -9,6 +9,8 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD +* Fixed PHP 8.4 deprecation notices + ## Version 2.3.5 Released 2024-12-02 diff --git a/src/SimpleSAML/Error/Error.php b/src/SimpleSAML/Error/Error.php index f10477cdf1..7bfbcdbe6d 100644 --- a/src/SimpleSAML/Error/Error.php +++ b/src/SimpleSAML/Error/Error.php @@ -79,9 +79,9 @@ class Error extends Exception */ public function __construct( string|array $errorCode, - Throwable $cause = null, + ?Throwable $cause = null, ?int $httpCode = null, - ErrorCodes $errorCodes = null, + ?ErrorCodes $errorCodes = null, ) { if (is_array($errorCode)) { $this->parameters = $errorCode; diff --git a/src/SimpleSAML/Error/Exception.php b/src/SimpleSAML/Error/Exception.php index 46510d8c6b..2cc756c240 100644 --- a/src/SimpleSAML/Error/Exception.php +++ b/src/SimpleSAML/Error/Exception.php @@ -46,7 +46,7 @@ class Exception extends \Exception * @param int $code Error code * @param \Throwable|null $cause The cause of this exception. */ - public function __construct(string $message, int $code = 0, Throwable $cause = null) + public function __construct(string $message, int $code = 0, ?Throwable $cause = null) { parent::__construct($message, $code); diff --git a/src/SimpleSAML/Locale/Localization.php b/src/SimpleSAML/Locale/Localization.php index 4e1d62845a..073790a130 100644 --- a/src/SimpleSAML/Locale/Localization.php +++ b/src/SimpleSAML/Locale/Localization.php @@ -126,7 +126,7 @@ public function getDomainLocaleDir(string $domain): string * @param string $localeDir Absolute path if the module is housed elsewhere * @param string $domain Translation domain within module; defaults to module name */ - public function addModuleDomain(string $module, string $localeDir = null, string $domain = null): void + public function addModuleDomain(string $module, ?string $localeDir = null, ?string $domain = null): void { if (!$localeDir) { $localeDir = $this->getDomainLocaleDir($module); diff --git a/src/SimpleSAML/Module.php b/src/SimpleSAML/Module.php index 4e2e5a3408..32435e602a 100644 --- a/src/SimpleSAML/Module.php +++ b/src/SimpleSAML/Module.php @@ -162,7 +162,7 @@ public static function isModuleEnabled(string $module): bool * @throws Error\BadRequest In case the request URI is malformed. * @throws Error\NotFound In case the request URI is invalid or the resource it points to cannot be found. */ - public static function process(Request $request = null): Response + public static function process(?Request $request = null): Response { if ($request === null) { $request = Request::createFromGlobals(); diff --git a/src/SimpleSAML/Session.php b/src/SimpleSAML/Session.php index 51f6e4f16c..d504ba2112 100644 --- a/src/SimpleSAML/Session.php +++ b/src/SimpleSAML/Session.php @@ -327,7 +327,7 @@ public static function getSessionFromRequest(): Session * @return \SimpleSAML\Session|null The session that is stored in the session handler, * or null if the session wasn't found. */ - public static function getSession(string $sessionId = null): ?Session + public static function getSession(?string $sessionId = null): ?Session { $sh = SessionHandler::getSessionHandler(); @@ -570,7 +570,7 @@ public function getRememberMeExpire(): ?int * * @param int $lifetime Number of seconds after when remember me session cookies expire. */ - public function setRememberMeExpire(int $lifetime = null): void + public function setRememberMeExpire(?int $lifetime = null): void { if ($lifetime === null) { $lifetime = self::$config->getOptionalInteger('session.rememberme.lifetime', 14 * 86400); @@ -800,7 +800,7 @@ public function updateSessionCookies(array $params = []): void * @param string $authority The authentication source we are setting expire time for. * @param int $expire The number of seconds authentication source is valid. */ - public function setAuthorityExpire(string $authority, int $expire = null): void + public function setAuthorityExpire(string $authority, ?int $expire = null): void { $this->markDirty(); diff --git a/src/SimpleSAML/SessionHandler.php b/src/SimpleSAML/SessionHandler.php index 873cc34eb5..961b722d0b 100644 --- a/src/SimpleSAML/SessionHandler.php +++ b/src/SimpleSAML/SessionHandler.php @@ -120,7 +120,7 @@ abstract public function hasSessionCookie(): bool; * * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. */ - abstract public function setCookie(string $sessionName, ?string $sessionID, array $cookieParams = null): void; + abstract public function setCookie(string $sessionName, ?string $sessionID, ?array $cookieParams = null): void; /** diff --git a/src/SimpleSAML/SessionHandlerPHP.php b/src/SimpleSAML/SessionHandlerPHP.php index 7a8d86ba5b..99931bd001 100644 --- a/src/SimpleSAML/SessionHandlerPHP.php +++ b/src/SimpleSAML/SessionHandlerPHP.php @@ -231,7 +231,7 @@ public function saveSession(Session $session): void * @throws \SimpleSAML\Error\Exception If it wasn't possible to disable session cookies or we are trying to load a * PHP session with a specific identifier and it doesn't match with the current session identifier. */ - public function loadSession(string $sessionId = null): ?Session + public function loadSession(?string $sessionId = null): ?Session { if ($sessionId !== session_id()) { throw new Error\Exception('Cannot load PHP session with a specific ID.'); @@ -315,7 +315,7 @@ public function getCookieParams(): array * * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. */ - public function setCookie(string $sessionName, ?string $sessionID, array $cookieParams = null): void + public function setCookie(string $sessionName, ?string $sessionID, ?array $cookieParams = null): void { if ($cookieParams === null) { $cookieParams = session_get_cookie_params(); diff --git a/src/SimpleSAML/Utils/HTTP.php b/src/SimpleSAML/Utils/HTTP.php index 82ff4ea8d3..9189d3bf7c 100644 --- a/src/SimpleSAML/Utils/HTTP.php +++ b/src/SimpleSAML/Utils/HTTP.php @@ -366,7 +366,7 @@ public function checkSessionCookie(?string $retryURL = null): void * @throws Error\Exception If the URL is not allowed by configuration. * */ - public function checkURLAllowed(string $url, array $trustedSites = null): string + public function checkURLAllowed(string $url, ?array $trustedSites = null): string { if (empty($url)) { return ''; @@ -1005,7 +1005,7 @@ public function redirectUntrustedURL(string $url, array $parameters = []): void * are not strings. * */ - public function resolveURL(string $url, string $base = null): string + public function resolveURL(string $url, ?string $base = null): string { if ($base === null) { $base = $this->getBaseURL(); @@ -1080,7 +1080,7 @@ public function resolveURL(string $url, string $base = null): string * * */ - public function setCookie(string $name, ?string $value, array $params = null, bool $throw = true): void + public function setCookie(string $name, ?string $value, ?array $params = null, bool $throw = true): void { $default_params = [ 'lifetime' => 0, diff --git a/src/SimpleSAML/Utils/System.php b/src/SimpleSAML/Utils/System.php index cabac093e3..0d90b8215f 100644 --- a/src/SimpleSAML/Utils/System.php +++ b/src/SimpleSAML/Utils/System.php @@ -121,7 +121,7 @@ public function getTempDir(): string * @return string An absolute path referring to $path. * */ - public function resolvePath(string $path, string $base = null): string + public function resolvePath(string $path, ?string $base = null): string { if ($base === null) { $config = Configuration::getInstance(); From 7b79290ec9bc5671534a719185ab2bb634380c25 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 7 Jan 2025 12:58:56 +0100 Subject: [PATCH 36/93] Fix infitite recursion (#2367) --- docs/simplesamlphp-changelog.md | 1 + src/SimpleSAML/Auth/ProcessingChain.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 093ad4e999..2cbc02aab5 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -10,6 +10,7 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD * Fixed PHP 8.4 deprecation notices +* Fixed infinite recursion (#2367) ## Version 2.3.5 diff --git a/src/SimpleSAML/Auth/ProcessingChain.php b/src/SimpleSAML/Auth/ProcessingChain.php index 4a51a1a153..60ccdcddff 100644 --- a/src/SimpleSAML/Auth/ProcessingChain.php +++ b/src/SimpleSAML/Auth/ProcessingChain.php @@ -12,6 +12,7 @@ use SimpleSAML\Logger; use SimpleSAML\Module; use SimpleSAML\Utils; +use Symfony\Component\VarExporter\VarExporter; use function array_key_exists; use function array_shift; @@ -22,7 +23,6 @@ use function is_string; use function sprintf; use function str_replace; -use function var_export; /** * Class for implementing authentication processing chains for IdPs. @@ -90,7 +90,7 @@ public function __construct(array $idpMetadata, array $spMetadata, string $mode } Logger::debug('Filter config for ' . $idpMetadata['entityid'] . '->' . - $spMetadata['entityid'] . ': ' . str_replace("\n", '', var_export($this->filters, true))); + $spMetadata['entityid'] . ': ' . str_replace("\n", '', VarExporter::export($this->filters))); } From 93ff89748258c05ec825f3a30139cf1d94656e16 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Wed, 15 Jan 2025 05:55:38 +1000 Subject: [PATCH 37/93] Use print_r to output the filters to handle cycles (#2368) * Use print_r to output the filters to handle cycles Using print_r will allow __debugInfo to customize how things are print/dumped. This should allow for cases with cycles to be handled without running out of memory. Relates to issues/2367 I also found that although this is a Logger::debug the string being passed to the function is probably being evaluated all the time. Even if debug is not on the export, dump, or print_r would run. To help with this I have the debugActive() method to only run the static call if debug is active. I have some testing using a getString() function and that will always be called when used as part of the string concat to the Logger::debug() method call. As the dumping could be expensive and is not used at all if not debugging this might be handy to have. Formatting needs a phpcs or whatnot and the new methods in Logger need some docs. This is mainly an initial drop to discuss. * phpcs lint * Remove the debugActive to another PR --- src/SimpleSAML/Auth/ProcessingChain.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/SimpleSAML/Auth/ProcessingChain.php b/src/SimpleSAML/Auth/ProcessingChain.php index 60ccdcddff..02cab9e8b7 100644 --- a/src/SimpleSAML/Auth/ProcessingChain.php +++ b/src/SimpleSAML/Auth/ProcessingChain.php @@ -12,7 +12,6 @@ use SimpleSAML\Logger; use SimpleSAML\Module; use SimpleSAML\Utils; -use Symfony\Component\VarExporter\VarExporter; use function array_key_exists; use function array_shift; @@ -90,7 +89,7 @@ public function __construct(array $idpMetadata, array $spMetadata, string $mode } Logger::debug('Filter config for ' . $idpMetadata['entityid'] . '->' . - $spMetadata['entityid'] . ': ' . str_replace("\n", '', VarExporter::export($this->filters))); + $spMetadata['entityid'] . ': ' . str_replace("\n", '', print_r($this->filters, true))); } From cd380c28427322e4fc9e4e6c30fe16d0d321d8cf Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 16 Jan 2025 11:49:03 +0100 Subject: [PATCH 38/93] Fix 'Undefined array key' warning in RequestedAuthnContextSelector if no RAC is present in the request --- docs/simplesamlphp-changelog.md | 1 + modules/core/src/Auth/Source/RequestedAuthnContextSelector.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 2cbc02aab5..8da9c2803b 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -11,6 +11,7 @@ Released TBD * Fixed PHP 8.4 deprecation notices * Fixed infinite recursion (#2367) +* Fixed "Undefined array key" warning in RequestedAuthnContextSelector if no RAC is present in the request ## Version 2.3.5 diff --git a/modules/core/src/Auth/Source/RequestedAuthnContextSelector.php b/modules/core/src/Auth/Source/RequestedAuthnContextSelector.php index b0262fe04d..411e6868d8 100644 --- a/modules/core/src/Auth/Source/RequestedAuthnContextSelector.php +++ b/modules/core/src/Auth/Source/RequestedAuthnContextSelector.php @@ -106,7 +106,7 @@ public function __construct(array $info, array $config) */ protected function selectAuthSource(array &$state): string { - $requestedContexts = $state['saml:RequestedAuthnContext']; + $requestedContexts = $state['saml:RequestedAuthnContext'] ?? null; if ( $requestedContexts === null || !array_key_exists('AuthnContextClassRef', $requestedContexts) From 4a05bd58c83954482412e8f41abf86051e5e7b47 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 4 Feb 2025 19:08:33 +0100 Subject: [PATCH 39/93] Exclude .phive dir from tarball release --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 55ea540a90..f26a230f4b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -22,3 +22,4 @@ phpunit.xml export-ignore .markdownlint.yml export-ignore .markdownlintrc export-ignore *.php.dist linguist-language=php +.phive From b14458d3841d70921a250f526cad79dd5a1422ba Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 6 Feb 2025 15:59:39 +0100 Subject: [PATCH 40/93] set device-width --- templates/base.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/base.twig b/templates/base.twig index 7c7b86829b..92c7b8f279 100644 --- a/templates/base.twig +++ b/templates/base.twig @@ -2,7 +2,7 @@ - + {{ pagetitle }} From 8c4874625c35b37d333d4c65ec23b80919ae1574 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 6 Feb 2025 16:01:22 +0100 Subject: [PATCH 41/93] Suppress UnusedClass on unit tests --- psalm-dev.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/psalm-dev.xml b/psalm-dev.xml index 372f075efb..cb1376a81b 100644 --- a/psalm-dev.xml +++ b/psalm-dev.xml @@ -46,6 +46,13 @@ + + + + + + + From dba9a89ab6537106de8619db204c847428b07d6c Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 6 Feb 2025 16:06:09 +0100 Subject: [PATCH 42/93] Lower Psalm error-level --- psalm-dev.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psalm-dev.xml b/psalm-dev.xml index cb1376a81b..01aca29765 100644 --- a/psalm-dev.xml +++ b/psalm-dev.xml @@ -2,7 +2,7 @@ Date: Thu, 6 Feb 2025 16:07:14 +0100 Subject: [PATCH 43/93] Update dependencies --- composer.lock | 520 +++++++++++++++++++++++++++++--------------------- 1 file changed, 300 insertions(+), 220 deletions(-) diff --git a/composer.lock b/composer.lock index fa0c4d4e8d..e03f1a63c4 100644 --- a/composer.lock +++ b/composer.lock @@ -156,16 +156,16 @@ }, { "name": "gettext/translator", - "version": "v1.2.0", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/php-gettext/Translator.git", - "reference": "a4fa5ed740f304a0ed7b3e169b2b554a195c7570" + "reference": "8ae0ac79053bcb732a6c584cd86f7a82ef183161" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Translator/zipball/a4fa5ed740f304a0ed7b3e169b2b554a195c7570", - "reference": "a4fa5ed740f304a0ed7b3e169b2b554a195c7570", + "url": "https://api.github.com/repos/php-gettext/Translator/zipball/8ae0ac79053bcb732a6c584cd86f7a82ef183161", + "reference": "8ae0ac79053bcb732a6c584cd86f7a82ef183161", "shasum": "" }, "require": { @@ -210,7 +210,7 @@ "support": { "email": "oom@oscarotero.com", "issues": "https://github.com/php-gettext/Translator/issues", - "source": "https://github.com/php-gettext/Translator/tree/v1.2.0" + "source": "https://github.com/php-gettext/Translator/tree/v1.2.1" }, "funding": [ { @@ -226,44 +226,50 @@ "type": "patreon" } ], - "time": "2023-11-06T15:42:03+00:00" + "time": "2025-01-09T09:20:22+00:00" }, { - "name": "league/uri-interfaces", - "version": "7.4.1", + "name": "guzzlehttp/psr7", + "version": "2.7.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "8d43ef5c841032c87e2de015972c06f3865ef718" + "url": "https://github.com/guzzle/psr7.git", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/8d43ef5c841032c87e2de015972c06f3865ef718", - "reference": "8d43ef5c841032c87e2de015972c06f3865ef718", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "" }, "require": { - "ext-filter": "*", - "php": "^8.1", - "psr/http-factory": "^1", - "psr/http-message": "^1.1 || ^2.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { - "ext-bcmath": "to improve IPV4 host parsing", - "ext-gmp": "to improve IPV4 host parsing", - "ext-intl": "to handle IDN host with the best performance", - "php-64bit": "to improve IPV4 host parsing", - "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "7.x-dev" + "bamarni-bin": { + "bin-links": true, + "forward-command": false } }, "autoload": { "psr-4": { - "League\\Uri\\": "" + "GuzzleHttp\\Psr7\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -272,45 +278,71 @@ ], "authors": [ { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://nyamsprod.com" + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], - "description": "Common interfaces and classes for URI representation and interaction", - "homepage": "https://uri.thephpleague.com", + "description": "PSR-7 message implementation that also provides common utility methods", "keywords": [ - "data-uri", - "file-uri", - "ftp", - "hostname", "http", - "https", - "parse_str", - "parse_url", + "message", "psr-7", - "query-string", - "querystring", - "rfc3986", - "rfc3987", - "rfc6570", + "request", + "response", + "stream", "uri", - "url", - "ws" + "url" ], "support": { - "docs": "https://uri.thephpleague.com", - "forum": "https://thephpleague.slack.com", - "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.4.1" + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { - "url": "https://github.com/sponsors/nyamsprod", + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" } ], - "time": "2024-03-23T07:42:40+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "phpmailer/phpmailer", @@ -703,6 +735,50 @@ }, "time": "2024-09-11T13:17:53+00:00" }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, { "name": "robrichards/xmlseclibs", "version": "3.1.3", @@ -747,16 +823,16 @@ }, { "name": "simplesamlphp/assert", - "version": "v1.5.0", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/assert.git", - "reference": "f6872f002d34b8e20c19d0823b107d2c74ddfd9d" + "reference": "f35e26e1201ec41be19404e23f87e53cf747ed3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/f6872f002d34b8e20c19d0823b107d2c74ddfd9d", - "reference": "f6872f002d34b8e20c19d0823b107d2c74ddfd9d", + "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/f35e26e1201ec41be19404e23f87e53cf747ed3a", + "reference": "f35e26e1201ec41be19404e23f87e53cf747ed3a", "shasum": "" }, "require": { @@ -764,13 +840,13 @@ "ext-filter": "*", "ext-pcre": "*", "ext-spl": "*", - "league/uri-interfaces": "^7.4", + "guzzlehttp/psr7": "~2.7.0", "php": "^8.1", - "webmozart/assert": "^1.11" + "webmozart/assert": "~1.11.0" }, "require-dev": { "ext-intl": "*", - "simplesamlphp/simplesamlphp-test-framework": "^1.7" + "simplesamlphp/simplesamlphp-test-framework": "~1.8.0" }, "type": "library", "extra": { @@ -800,32 +876,32 @@ "description": "A wrapper around webmozart/assert to make it useful beyond checking method arguments", "support": { "issues": "https://github.com/simplesamlphp/assert/issues", - "source": "https://github.com/simplesamlphp/assert/tree/v1.5.0" + "source": "https://github.com/simplesamlphp/assert/tree/v1.8.1" }, - "time": "2024-11-19T18:52:10+00:00" + "time": "2025-01-09T12:10:04+00:00" }, { "name": "simplesamlphp/composer-module-installer", - "version": "v1.3.5", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/composer-module-installer.git", - "reference": "7bf413c2d28e48dff6755d74a7e45087cf144604" + "reference": "edb2155d200e2a208816d06f42cfa78bfd9e7cf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/7bf413c2d28e48dff6755d74a7e45087cf144604", - "reference": "7bf413c2d28e48dff6755d74a7e45087cf144604", + "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/edb2155d200e2a208816d06f42cfa78bfd9e7cf4", + "reference": "edb2155d200e2a208816d06f42cfa78bfd9e7cf4", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1 || ^2.0", - "php": "^7.4 || ^8.0", - "simplesamlphp/assert": "^0.8.0 || ^1.0" + "composer-plugin-api": "^2.6", + "php": "^8.1", + "simplesamlphp/assert": "^1.6" }, "require-dev": { - "composer/composer": "^2.4", - "simplesamlphp/simplesamlphp-test-framework": "^1.2.1" + "composer/composer": "^2.8.3", + "simplesamlphp/simplesamlphp-test-framework": "^1.8.0" }, "type": "composer-plugin", "extra": { @@ -843,9 +919,9 @@ "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer.", "support": { "issues": "https://github.com/simplesamlphp/composer-module-installer/issues", - "source": "https://github.com/simplesamlphp/composer-module-installer/tree/v1.3.5" + "source": "https://github.com/simplesamlphp/composer-module-installer/tree/v1.4.0" }, - "time": "2024-11-16T09:42:27+00:00" + "time": "2024-12-08T16:57:03+00:00" }, { "name": "simplesamlphp/composer-xmlprovider-installer", @@ -952,16 +1028,16 @@ }, { "name": "simplesamlphp/simplesamlphp-assets-base", - "version": "v2.3.2", + "version": "v2.3.7", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-assets-base.git", - "reference": "3f83d1afb16a2a807ac26f6a6a8e2f03bad75abe" + "reference": "23235665a66c42133af67807b1d4f4be5d454d63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/3f83d1afb16a2a807ac26f6a6a8e2f03bad75abe", - "reference": "3f83d1afb16a2a807ac26f6a6a8e2f03bad75abe", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/23235665a66c42133af67807b1d4f4be5d454d63", + "reference": "23235665a66c42133af67807b1d4f4be5d454d63", "shasum": "" }, "require": { @@ -982,33 +1058,33 @@ "description": "Assets for the SimpleSAMLphp main repository", "support": { "issues": "https://github.com/simplesamlphp/simplesamlphp-assets-base/issues", - "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.2" + "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.7" }, - "time": "2024-12-01T01:26:55+00:00" + "time": "2025-02-05T20:24:36+00:00" }, { "name": "simplesamlphp/xml-common", - "version": "v1.20.0", + "version": "v1.24.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-common.git", - "reference": "9cf986ee7d97c02feb992c78f51024f45b068c19" + "reference": "0521d7fa82ded0be994cf42e0365a4ac53c95789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/9cf986ee7d97c02feb992c78f51024f45b068c19", - "reference": "9cf986ee7d97c02feb992c78f51024f45b068c19", + "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/0521d7fa82ded0be994cf42e0365a4ac53c95789", + "reference": "0521d7fa82ded0be994cf42e0365a4ac53c95789", "shasum": "" }, "require": { "ext-date": "*", "ext-dom": "*", + "ext-filter": "*", "ext-libxml": "*", "ext-pcre": "*", "ext-spl": "*", - "ext-xmlreader": "*", "php": "^8.1", - "simplesamlphp/assert": "^1.2", + "simplesamlphp/assert": "~1.8.0", "simplesamlphp/composer-xmlprovider-installer": "~1.0.0", "symfony/finder": "^6.4" }, @@ -1045,20 +1121,20 @@ "issues": "https://github.com/simplesamlphp/xml-common/issues", "source": "https://github.com/simplesamlphp/xml-common" }, - "time": "2024-12-01T23:01:07+00:00" + "time": "2025-01-12T10:33:16+00:00" }, { "name": "simplesamlphp/xml-security", - "version": "v1.10.0", + "version": "v1.13.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "2f478b2308b06c10542488ce9690a98baaf2fdfa" + "reference": "ae601fb4398b533a2ba48e2c44fd972e2f20b474" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/2f478b2308b06c10542488ce9690a98baaf2fdfa", - "reference": "2f478b2308b06c10542488ce9690a98baaf2fdfa", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/ae601fb4398b533a2ba48e2c44fd972e2f20b474", + "reference": "ae601fb4398b533a2ba48e2c44fd972e2f20b474", "shasum": "" }, "require": { @@ -1069,11 +1145,11 @@ "ext-pcre": "*", "ext-spl": "*", "php": "^8.1", - "simplesamlphp/assert": "^1.5", - "simplesamlphp/xml-common": "^1.20.0" + "simplesamlphp/assert": "~1.8.0", + "simplesamlphp/xml-common": "~1.24.0" }, "require-dev": { - "simplesamlphp/simplesamlphp-test-framework": "^1.7" + "simplesamlphp/simplesamlphp-test-framework": "~1.8.0" }, "type": "simplesamlphp-xmlprovider", "autoload": { @@ -1107,22 +1183,22 @@ ], "support": { "issues": "https://github.com/simplesamlphp/xml-security/issues", - "source": "https://github.com/simplesamlphp/xml-security/tree/v1.10.0" + "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.0" }, - "time": "2024-12-01T23:34:04+00:00" + "time": "2025-01-08T22:58:06+00:00" }, { "name": "symfony/cache", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "70d60e9a3603108563010f8592dff15a6f15dfae" + "reference": "b209751ed25f735ea90ca4c9c969d9413a17dfee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/70d60e9a3603108563010f8592dff15a6f15dfae", - "reference": "70d60e9a3603108563010f8592dff15a6f15dfae", + "url": "https://api.github.com/repos/symfony/cache/zipball/b209751ed25f735ea90ca4c9c969d9413a17dfee", + "reference": "b209751ed25f735ea90ca4c9c969d9413a17dfee", "shasum": "" }, "require": { @@ -1189,7 +1265,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.16" + "source": "https://github.com/symfony/cache/tree/v6.4.18" }, "funding": [ { @@ -1205,7 +1281,7 @@ "type": "tidelift" } ], - "time": "2024-11-20T10:10:54+00:00" + "time": "2025-01-22T14:13:52+00:00" }, { "name": "symfony/cache-contracts", @@ -1227,12 +1303,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -1360,16 +1436,16 @@ }, { "name": "symfony/console", - "version": "v6.4.15", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd" + "reference": "799445db3f15768ecc382ac5699e6da0520a0a04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", - "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", + "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04", + "reference": "799445db3f15768ecc382ac5699e6da0520a0a04", "shasum": "" }, "require": { @@ -1434,7 +1510,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.15" + "source": "https://github.com/symfony/console/tree/v6.4.17" }, "funding": [ { @@ -1450,7 +1526,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T14:19:14+00:00" + "time": "2024-12-07T12:07:30+00:00" }, { "name": "symfony/dependency-injection", @@ -1552,12 +1628,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -1602,16 +1678,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.14", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9" + "reference": "e8d3b5b1975e67812a54388b1ba8e9ec28eb770e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e024324511eeb00983ee76b9aedc3e6ecd993d9", - "reference": "9e024324511eeb00983ee76b9aedc3e6ecd993d9", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/e8d3b5b1975e67812a54388b1ba8e9ec28eb770e", + "reference": "e8d3b5b1975e67812a54388b1ba8e9ec28eb770e", "shasum": "" }, "require": { @@ -1657,7 +1733,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.14" + "source": "https://github.com/symfony/error-handler/tree/v6.4.18" }, "funding": [ { @@ -1673,7 +1749,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2025-01-06T09:38:16+00:00" }, { "name": "symfony/event-dispatcher", @@ -1775,12 +1851,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -1899,16 +1975,16 @@ }, { "name": "symfony/finder", - "version": "v6.4.13", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958" + "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958", - "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958", + "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", + "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", "shasum": "" }, "require": { @@ -1943,7 +2019,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.13" + "source": "https://github.com/symfony/finder/tree/v6.4.17" }, "funding": [ { @@ -1959,20 +2035,20 @@ "type": "tidelift" } ], - "time": "2024-10-01T08:30:56+00:00" + "time": "2024-12-29T13:51:37+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.13", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418" + "reference": "91df8ee37543ebc01756c9e5eaf94d1878ff1ccd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e8b0bd921f9bd35ea4d1508067c3f3f6e2036418", - "reference": "e8b0bd921f9bd35ea4d1508067c3f3f6e2036418", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/91df8ee37543ebc01756c9e5eaf94d1878ff1ccd", + "reference": "91df8ee37543ebc01756c9e5eaf94d1878ff1ccd", "shasum": "" }, "require": { @@ -2092,7 +2168,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.13" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.18" }, "funding": [ { @@ -2108,20 +2184,20 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-01-28T18:47:02+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57" + "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/431771b7a6f662f1575b3cfc8fd7617aa9864d57", - "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0492d6217e5ab48f51fca76f64cf8e78919d0db", + "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db", "shasum": "" }, "require": { @@ -2169,7 +2245,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.16" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.18" }, "funding": [ { @@ -2185,20 +2261,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T18:58:10+00:00" + "time": "2025-01-09T15:48:56+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0" + "reference": "fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", - "reference": "8838b5b21d807923b893ccbfc2cbeda0f1bc00f0", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7", + "reference": "fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7", "shasum": "" }, "require": { @@ -2283,7 +2359,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.16" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.18" }, "funding": [ { @@ -2299,7 +2375,7 @@ "type": "tidelift" } ], - "time": "2024-11-27T12:49:36+00:00" + "time": "2025-01-29T07:25:58+00:00" }, { "name": "symfony/intl", @@ -2482,8 +2558,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2558,8 +2634,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2636,8 +2712,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2720,8 +2796,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2804,8 +2880,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2878,8 +2954,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -2954,8 +3030,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -3012,16 +3088,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.16", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220" + "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/91e02e606b4b705c2f4fb42f7e7708b7923a3220", - "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220", + "url": "https://api.github.com/repos/symfony/routing/zipball/e9bfc94953019089acdfb9be51c1b9142c4afa68", + "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68", "shasum": "" }, "require": { @@ -3075,7 +3151,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.16" + "source": "https://github.com/symfony/routing/tree/v6.4.18" }, "funding": [ { @@ -3091,7 +3167,7 @@ "type": "tidelift" } ], - "time": "2024-11-13T15:31:34+00:00" + "time": "2025-01-09T08:51:02+00:00" }, { "name": "symfony/service-contracts", @@ -3117,12 +3193,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -3281,12 +3357,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -3342,16 +3418,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.16", + "version": "v6.4.17", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "32ec012ed4f6426441a66014471bdb26674744be" + "reference": "238e1aac992b5231c66faf10131ace7bdba97065" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/32ec012ed4f6426441a66014471bdb26674744be", - "reference": "32ec012ed4f6426441a66014471bdb26674744be", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/238e1aac992b5231c66faf10131ace7bdba97065", + "reference": "238e1aac992b5231c66faf10131ace7bdba97065", "shasum": "" }, "require": { @@ -3431,7 +3507,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.16" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.17" }, "funding": [ { @@ -3447,20 +3523,20 @@ "type": "tidelift" } ], - "time": "2024-11-25T11:59:11+00:00" + "time": "2024-12-19T14:08:41+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.15", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80" + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", - "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", "shasum": "" }, "require": { @@ -3516,7 +3592,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.15" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" }, "funding": [ { @@ -3532,7 +3608,7 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:28:48+00:00" + "time": "2025-01-17T11:26:11+00:00" }, { "name": "symfony/var-exporter", @@ -3613,16 +3689,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.13", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9" + "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", - "reference": "e99b4e94d124b29ee4cf3140e1b537d2dad8cec9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", + "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", "shasum": "" }, "require": { @@ -3665,7 +3741,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.13" + "source": "https://github.com/symfony/yaml/tree/v6.4.18" }, "funding": [ { @@ -3681,20 +3757,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-01-07T09:44:41+00:00" }, { "name": "twig/intl-extra", - "version": "v3.16.0", + "version": "v3.19.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "4eeab2a3f8d04d1838be7251ab2d183f817aea7b" + "reference": "79a1bea7254783b540d51de10dc5e9f310110794" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/4eeab2a3f8d04d1838be7251ab2d183f817aea7b", - "reference": "4eeab2a3f8d04d1838be7251ab2d183f817aea7b", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/79a1bea7254783b540d51de10dc5e9f310110794", + "reference": "79a1bea7254783b540d51de10dc5e9f310110794", "shasum": "" }, "require": { @@ -3733,7 +3809,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.16.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.19.0" }, "funding": [ { @@ -3745,20 +3821,20 @@ "type": "tidelift" } ], - "time": "2024-11-20T13:19:52+00:00" + "time": "2025-01-24T20:20:33+00:00" }, { "name": "twig/twig", - "version": "v3.16.0", + "version": "v3.19.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561" + "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/475ad2dc97d65d8631393e721e7e44fb544f0561", - "reference": "475ad2dc97d65d8631393e721e7e44fb544f0561", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/d4f8c2b86374f08efc859323dbcd95c590f7124e", + "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e", "shasum": "" }, "require": { @@ -3813,7 +3889,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.16.0" + "source": "https://github.com/twigphp/Twig/tree/v3.19.0" }, "funding": [ { @@ -3825,7 +3901,7 @@ "type": "tidelift" } ], - "time": "2024-11-29T08:27:05+00:00" + "time": "2025-01-29T07:06:14+00:00" }, { "name": "webmozart/assert", @@ -4407,16 +4483,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.12", + "version": "1.12.16", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0" + "reference": "e0bb5cb78545aae631220735aa706eac633a6be9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", - "reference": "b5ae1b88f471d3fd4ba1aa0046234b5ca3776dd0", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e0bb5cb78545aae631220735aa706eac633a6be9", + "reference": "e0bb5cb78545aae631220735aa706eac633a6be9", "shasum": "" }, "require": { @@ -4461,7 +4537,7 @@ "type": "github" } ], - "time": "2024-11-28T22:13:23+00:00" + "time": "2025-01-21T14:50:05+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -4836,16 +4912,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.38", + "version": "10.5.44", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a86773b9e887a67bc53efa9da9ad6e3f2498c132" + "reference": "1381c62769be4bb88fa4c5aec1366c7c66ca4f36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a86773b9e887a67bc53efa9da9ad6e3f2498c132", - "reference": "a86773b9e887a67bc53efa9da9ad6e3f2498c132", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1381c62769be4bb88fa4c5aec1366c7c66ca4f36", + "reference": "1381c62769be4bb88fa4c5aec1366c7c66ca4f36", "shasum": "" }, "require": { @@ -4855,7 +4931,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.0", + "myclabs/deep-copy": "^1.12.1", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.1", @@ -4917,7 +4993,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.38" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.44" }, "funding": [ { @@ -4933,7 +5009,7 @@ "type": "tidelift" } ], - "time": "2024-10-28T13:06:21+00:00" + "time": "2025-01-31T07:00:38+00:00" }, { "name": "predis/predis", @@ -6153,16 +6229,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.1", + "version": "3.11.3", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87" + "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", - "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", + "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", "shasum": "" }, "require": { @@ -6227,9 +6303,13 @@ { "url": "https://opencollective.com/php_codesniffer", "type": "open_collective" + }, + { + "url": "https://thanks.dev/phpcsstandards", + "type": "thanks_dev" } ], - "time": "2024-11-16T12:02:36+00:00" + "time": "2025-01-23T17:04:15+00:00" }, { "name": "symfony/phpunit-bridge", From 4dc8f5f8fc496dfc5743a9228666b21dc04581d6 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Wed, 12 Feb 2025 09:56:32 +1000 Subject: [PATCH 44/93] Update to supress errors for many tests items for now. (#2386) Some psalm working is better than failing and preventing other CI from running. --- psalm-dev.xml | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/psalm-dev.xml b/psalm-dev.xml index 01aca29765..21dece15f2 100644 --- a/psalm-dev.xml +++ b/psalm-dev.xml @@ -59,6 +59,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 0b0f3848fc31a32836a4d4a84ba8e7da4dfd06d7 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 12 Feb 2025 10:44:59 +0100 Subject: [PATCH 45/93] Fix use-statement --- src/SimpleSAML/Utils/Time.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SimpleSAML/Utils/Time.php b/src/SimpleSAML/Utils/Time.php index b64bd36a10..905cec8387 100644 --- a/src/SimpleSAML/Utils/Time.php +++ b/src/SimpleSAML/Utils/Time.php @@ -10,10 +10,10 @@ namespace SimpleSAML\Utils; -use SimpleSAML\Assert\Assert; use SimpleSAML\Configuration; use SimpleSAML\Error; use SimpleSAML\Logger; +use SimpleSAML\XML\Assert; class Time { From 268e99c60bcadc6b586cacdc8d2a169ab50c0d3d Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 12 Feb 2025 15:28:26 +0100 Subject: [PATCH 46/93] Add mobile-capable meta-tag --- templates/base.twig | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/base.twig b/templates/base.twig index 92c7b8f279..169dcccb9a 100644 --- a/templates/base.twig +++ b/templates/base.twig @@ -3,6 +3,7 @@ + {{ pagetitle }} From f350935361cc79283a60927444b13d1199f833c1 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 13 Feb 2025 09:56:03 +0100 Subject: [PATCH 47/93] Fix incorrect use-statement --- src/SimpleSAML/Utils/Time.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SimpleSAML/Utils/Time.php b/src/SimpleSAML/Utils/Time.php index 905cec8387..f09b93a75e 100644 --- a/src/SimpleSAML/Utils/Time.php +++ b/src/SimpleSAML/Utils/Time.php @@ -13,7 +13,7 @@ use SimpleSAML\Configuration; use SimpleSAML\Error; use SimpleSAML\Logger; -use SimpleSAML\XML\Assert; +use SimpleSAML\XML\Assert\Assert; class Time { From 171a985868f64f6fa65126e5537eb723da498cdc Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 17 Feb 2025 23:33:19 +0100 Subject: [PATCH 48/93] Release 2.3.6 --- .github/workflows/php.yml | 1 + composer.json | 2 +- composer.lock | 143 +++++++------------------------ docs/simplesamlphp-changelog.md | 12 ++- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 6 files changed, 48 insertions(+), 114 deletions(-) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index c5bf246974..48a2bb8235 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -86,6 +86,7 @@ jobs: --php-version=${{ steps.setup-php.outputs.php-version }} - name: Psalm (testsuite) + continue-on-error: true run: | psalm \ -c psalm-dev.xml \ diff --git a/composer.json b/composer.json index 372f8a5450..241b6026aa 100644 --- a/composer.json +++ b/composer.json @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.5" + "version": "v2.3.6" } diff --git a/composer.lock b/composer.lock index e03f1a63c4..332b3a3987 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "eb8044a5f31df9017f83ac696a2e46a4", + "content-hash": "16f42938e0bfbfc464984f1ea2a1b74c", "packages": [ { "name": "gettext/gettext", @@ -2934,82 +2934,6 @@ ], "time": "2024-09-09T11:45:10+00:00" }, - { - "name": "symfony/polyfill-php81", - "version": "v1.31.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, { "name": "symfony/polyfill-php83", "version": "v1.31.0", @@ -3761,20 +3685,20 @@ }, { "name": "twig/intl-extra", - "version": "v3.19.0", + "version": "v3.20.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "79a1bea7254783b540d51de10dc5e9f310110794" + "reference": "05bc5d46b9df9e62399eae53e7c0b0633298b146" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/79a1bea7254783b540d51de10dc5e9f310110794", - "reference": "79a1bea7254783b540d51de10dc5e9f310110794", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/05bc5d46b9df9e62399eae53e7c0b0633298b146", + "reference": "05bc5d46b9df9e62399eae53e7c0b0633298b146", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1.0", "symfony/intl": "^5.4|^6.4|^7.0", "twig/twig": "^3.13|^4.0" }, @@ -3809,7 +3733,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.19.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.20.0" }, "funding": [ { @@ -3821,28 +3745,27 @@ "type": "tidelift" } ], - "time": "2025-01-24T20:20:33+00:00" + "time": "2025-01-31T20:45:36+00:00" }, { "name": "twig/twig", - "version": "v3.19.0", + "version": "v3.20.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e" + "reference": "3468920399451a384bef53cf7996965f7cd40183" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/d4f8c2b86374f08efc859323dbcd95c590f7124e", - "reference": "d4f8c2b86374f08efc859323dbcd95c590f7124e", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3468920399451a384bef53cf7996965f7cd40183", + "reference": "3468920399451a384bef53cf7996965f7cd40183", "shasum": "" }, "require": { - "php": ">=8.0.2", + "php": ">=8.1.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php81": "^1.29" + "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { "phpstan/phpstan": "^2.0", @@ -3889,7 +3812,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.19.0" + "source": "https://github.com/twigphp/Twig/tree/v3.20.0" }, "funding": [ { @@ -3901,7 +3824,7 @@ "type": "tidelift" } ], - "time": "2025-01-29T07:06:14+00:00" + "time": "2025-02-13T08:34:43+00:00" }, { "name": "webmozart/assert", @@ -4154,16 +4077,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.1", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" + "reference": "024473a478be9df5fdaca2c793f2232fe788e414" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", - "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", + "reference": "024473a478be9df5fdaca2c793f2232fe788e414", "shasum": "" }, "require": { @@ -4202,7 +4125,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" }, "funding": [ { @@ -4210,7 +4133,7 @@ "type": "tidelift" } ], - "time": "2024-11-08T17:47:46+00:00" + "time": "2025-02-12T12:17:51+00:00" }, { "name": "nikic/php-parser", @@ -4483,16 +4406,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.16", + "version": "1.12.18", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e0bb5cb78545aae631220735aa706eac633a6be9" + "reference": "fef9f07814a573399229304bb0046affdf558812" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e0bb5cb78545aae631220735aa706eac633a6be9", - "reference": "e0bb5cb78545aae631220735aa706eac633a6be9", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/fef9f07814a573399229304bb0046affdf558812", + "reference": "fef9f07814a573399229304bb0046affdf558812", "shasum": "" }, "require": { @@ -4537,7 +4460,7 @@ "type": "github" } ], - "time": "2025-01-21T14:50:05+00:00" + "time": "2025-02-13T12:44:44+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -4912,16 +4835,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.44", + "version": "10.5.45", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "1381c62769be4bb88fa4c5aec1366c7c66ca4f36" + "reference": "bd68a781d8e30348bc297449f5234b3458267ae8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1381c62769be4bb88fa4c5aec1366c7c66ca4f36", - "reference": "1381c62769be4bb88fa4c5aec1366c7c66ca4f36", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bd68a781d8e30348bc297449f5234b3458267ae8", + "reference": "bd68a781d8e30348bc297449f5234b3458267ae8", "shasum": "" }, "require": { @@ -4993,7 +4916,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.44" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.45" }, "funding": [ { @@ -5009,7 +4932,7 @@ "type": "tidelift" } ], - "time": "2025-01-31T07:00:38+00:00" + "time": "2025-02-06T16:08:12+00:00" }, { "name": "predis/predis", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 8da9c2803b..8f435044ea 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,13 +5,23 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.6 +## Version 2.3.7 Released TBD +## Version 2.3.6 + +Released 2025-02-17 + * Fixed PHP 8.4 deprecation notices * Fixed infinite recursion (#2367) * Fixed "Undefined array key" warning in RequestedAuthnContextSelector if no RAC is present in the request +* Fixed an unintended BC-break in `simplesamlphp/assert` that caused composer dependency issues +* Updated several dependencies + +`ldap` + +* Verify attribute value is a string before calling strlen (simplesamlphp/simplesamlphp-module-ldap#64) (v2.4.4) ## Version 2.3.5 diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index 601fccbd50..ff7fa308a0 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.5 +%define version 2.3.6 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 3d913a0462..aeb69997e4 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.5'; + public const VERSION = '2.3.6'; /** * A default value which means that the given option is required. From 6b37c4750b6011244c6a19a3438fc85746b39328 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 17 Feb 2025 23:43:39 +0100 Subject: [PATCH 49/93] Start testing on PHP 8.4 --- .github/workflows/php.yml | 6 +++--- docs/simplesamlphp-changelog.md | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 48a2bb8235..4a51a746c7 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -47,7 +47,7 @@ jobs: # https://github.com/shivammathur/setup-php uses: shivammathur/setup-php@v2 with: - php-version: '8.3' + php-version: '8.4' tools: composer, phpcs, psalm extensions: mbstring, xml coverage: none @@ -153,7 +153,7 @@ jobs: fail-fast: false matrix: operating-system: [ubuntu-latest] - php-versions: ['8.1', '8.2', '8.3'] + php-versions: ['8.1', '8.2', '8.3', '8.4'] steps: - name: Setup PHP, with composer and extensions @@ -215,7 +215,7 @@ jobs: fail-fast: true matrix: operating-system: [windows-latest] - php-versions: ['8.1', '8.2', '8.3'] + php-versions: ['8.1', '8.2', '8.3', '8.4'] steps: - name: Setup PHP, with composer and extensions diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 8f435044ea..ef52dd290c 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -18,6 +18,7 @@ Released 2025-02-17 * Fixed "Undefined array key" warning in RequestedAuthnContextSelector if no RAC is present in the request * Fixed an unintended BC-break in `simplesamlphp/assert` that caused composer dependency issues * Updated several dependencies +* Started testing on PHP 8.4 `ldap` From 117cf9272a3fa62a77362cc75e075162107aedb5 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Thu, 20 Feb 2025 15:43:57 +1000 Subject: [PATCH 50/93] i18n: set the domain for a theme if it is missing (#2392) * i18n: set the domain for a theme if it is missing If there is no header in the po file then it was not being found for a theme. This PR allows po files to exist without any header such as the below. msgid "" msgstr "" "X-Domain: worldpeace\n" * lint * changelog --- docs/simplesamlphp-changelog.md | 2 ++ src/SimpleSAML/Locale/Localization.php | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index ef52dd290c..3703447d46 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -9,6 +9,8 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD +* Fixed loading translations for themes where there is no explicit X-Domain set in the po file. + ## Version 2.3.6 Released 2025-02-17 diff --git a/src/SimpleSAML/Locale/Localization.php b/src/SimpleSAML/Locale/Localization.php index 073790a130..f9f3833e78 100644 --- a/src/SimpleSAML/Locale/Localization.php +++ b/src/SimpleSAML/Locale/Localization.php @@ -261,6 +261,10 @@ private function loadGettextGettextFromPO( $file = new File($langPath . $domain . '.po', false); if ($file->getRealPath() !== false && $file->isReadable()) { $translations = (new PoLoader())->loadFile($file->getRealPath()); + if (empty($translations->getDomain())) { + $translations->setDomain($domain); + } + $arrayGenerator = new ArrayGenerator(); $this->translator->addTranslations( $arrayGenerator->generateArray($translations), From e2ee52df7fec54aa65a451b0db39e7bb2f5d21db Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 6 Mar 2025 21:44:35 +0100 Subject: [PATCH 51/93] Fix implicit nullables --- src/SimpleSAML/Configuration.php | 2 +- src/SimpleSAML/XHTML/Template.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index aeb69997e4..6ee47bdc77 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -1318,7 +1318,7 @@ public function getEndpointPrioritizedByBinding( */ public function getDefaultEndpoint( string $endpointType, - array $bindings = null, + ?array $bindings = null, mixed $default = self::REQUIRED_OPTION, ): mixed { $endpoints = $this->getEndpoints($endpointType); diff --git a/src/SimpleSAML/XHTML/Template.php b/src/SimpleSAML/XHTML/Template.php index 9316d33be6..882173c78a 100644 --- a/src/SimpleSAML/XHTML/Template.php +++ b/src/SimpleSAML/XHTML/Template.php @@ -179,7 +179,7 @@ class_exists($controller) * @param bool $tag * @return string */ - public function asset(string $asset, string $module = null, bool $tag = true): string + public function asset(string $asset, ?string $module = null, bool $tag = true): string { $baseDir = $this->configuration->getBaseDir(); $basePath = $this->configuration->getBasePath(); From 515f1a24d4f103ccb8e1eb302aa6cc19526202a0 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 11 Mar 2025 18:56:09 +0100 Subject: [PATCH 52/93] Bump dependencies --- composer.json | 2 +- composer.lock | 297 +++++++++++++++++++++++++------------------------- 2 files changed, 149 insertions(+), 150 deletions(-) diff --git a/composer.json b/composer.json index 241b6026aa..287319fc51 100644 --- a/composer.json +++ b/composer.json @@ -63,7 +63,7 @@ "psr/log": "^3.0", "simplesamlphp/assert": "^1.1", "simplesamlphp/composer-module-installer": "^1.3", - "simplesamlphp/saml2": "^4.16", + "simplesamlphp/saml2": "^4.17", "simplesamlphp/simplesamlphp-assets-base": "~2.3.0", "simplesamlphp/xml-security": "^1.7", "symfony/cache": "^6.4", diff --git a/composer.lock b/composer.lock index 332b3a3987..c41c384b91 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "16f42938e0bfbfc464984f1ea2a1b74c", + "content-hash": "d3f6e8b74e1927ac872ddaab889b79ed", "packages": [ { "name": "gettext/gettext", @@ -967,16 +967,16 @@ }, { "name": "simplesamlphp/saml2", - "version": "v4.16.14", + "version": "v4.17.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "fe6c7bdda5e166e326d19d78f230d959ab51d01d" + "reference": "bdf16d1021363a0819c35806124a20e74a78c2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/fe6c7bdda5e166e326d19d78f230d959ab51d01d", - "reference": "fe6c7bdda5e166e326d19d78f230d959ab51d01d", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/bdf16d1021363a0819c35806124a20e74a78c2c9", + "reference": "bdf16d1021363a0819c35806124a20e74a78c2c9", "shasum": "" }, "require": { @@ -1022,22 +1022,22 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.16.14" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.17.0" }, - "time": "2024-12-01T22:26:30+00:00" + "time": "2025-03-11T17:35:33+00:00" }, { "name": "simplesamlphp/simplesamlphp-assets-base", - "version": "v2.3.7", + "version": "v2.3.9", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-assets-base.git", - "reference": "23235665a66c42133af67807b1d4f4be5d454d63" + "reference": "75bd31897ed3634d97de2815b5fa668625f8134d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/23235665a66c42133af67807b1d4f4be5d454d63", - "reference": "23235665a66c42133af67807b1d4f4be5d454d63", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/75bd31897ed3634d97de2815b5fa668625f8134d", + "reference": "75bd31897ed3634d97de2815b5fa668625f8134d", "shasum": "" }, "require": { @@ -1058,9 +1058,9 @@ "description": "Assets for the SimpleSAMLphp main repository", "support": { "issues": "https://github.com/simplesamlphp/simplesamlphp-assets-base/issues", - "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.7" + "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.9" }, - "time": "2025-02-05T20:24:36+00:00" + "time": "2025-03-02T17:54:55+00:00" }, { "name": "simplesamlphp/xml-common", @@ -1189,16 +1189,16 @@ }, { "name": "symfony/cache", - "version": "v6.4.18", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "b209751ed25f735ea90ca4c9c969d9413a17dfee" + "reference": "342e87b15ac02e4b4f0924ddc368e75d5262aab3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/b209751ed25f735ea90ca4c9c969d9413a17dfee", - "reference": "b209751ed25f735ea90ca4c9c969d9413a17dfee", + "url": "https://api.github.com/repos/symfony/cache/zipball/342e87b15ac02e4b4f0924ddc368e75d5262aab3", + "reference": "342e87b15ac02e4b4f0924ddc368e75d5262aab3", "shasum": "" }, "require": { @@ -1265,7 +1265,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.18" + "source": "https://github.com/symfony/cache/tree/v6.4.19" }, "funding": [ { @@ -1281,7 +1281,7 @@ "type": "tidelift" } ], - "time": "2025-01-22T14:13:52+00:00" + "time": "2025-02-26T09:12:57+00:00" }, { "name": "symfony/cache-contracts", @@ -1530,16 +1530,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v6.4.16", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8" + "reference": "b343c3b2f1539fe41331657b37d5c96c1d1ea842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7a379d8871f6a36f01559c14e11141cc02eb8dc8", - "reference": "7a379d8871f6a36f01559c14e11141cc02eb8dc8", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b343c3b2f1539fe41331657b37d5c96c1d1ea842", + "reference": "b343c3b2f1539fe41331657b37d5c96c1d1ea842", "shasum": "" }, "require": { @@ -1591,7 +1591,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.16" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.19" }, "funding": [ { @@ -1607,7 +1607,7 @@ "type": "tidelift" } ], - "time": "2024-11-25T14:52:46+00:00" + "time": "2025-02-20T10:02:49+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1678,22 +1678,22 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.18", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "e8d3b5b1975e67812a54388b1ba8e9ec28eb770e" + "reference": "aabf79938aa795350c07ce6464dd1985607d95d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/e8d3b5b1975e67812a54388b1ba8e9ec28eb770e", - "reference": "e8d3b5b1975e67812a54388b1ba8e9ec28eb770e", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/aabf79938aa795350c07ce6464dd1985607d95d5", + "reference": "aabf79938aa795350c07ce6464dd1985607d95d5", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/var-dumper": "^6.4|^7.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", @@ -1702,7 +1702,7 @@ "require-dev": { "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" + "symfony/serializer": "^6.4|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -1733,7 +1733,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.18" + "source": "https://github.com/symfony/error-handler/tree/v7.2.4" }, "funding": [ { @@ -1749,28 +1749,28 @@ "type": "tidelift" } ], - "time": "2025-01-06T09:38:16+00:00" + "time": "2025-02-02T20:27:07+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.13", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -1779,13 +1779,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -1813,7 +1813,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/v6.4.13" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0" }, "funding": [ { @@ -1829,7 +1829,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -2039,16 +2039,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v6.4.18", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "91df8ee37543ebc01756c9e5eaf94d1878ff1ccd" + "reference": "078a6f11cb34d208d6efc74003d77f66a09fa3c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/91df8ee37543ebc01756c9e5eaf94d1878ff1ccd", - "reference": "91df8ee37543ebc01756c9e5eaf94d1878ff1ccd", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/078a6f11cb34d208d6efc74003d77f66a09fa3c2", + "reference": "078a6f11cb34d208d6efc74003d77f66a09fa3c2", "shasum": "" }, "require": { @@ -2168,7 +2168,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.18" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.19" }, "funding": [ { @@ -2184,7 +2184,7 @@ "type": "tidelift" } ], - "time": "2025-01-28T18:47:02+00:00" + "time": "2025-02-26T07:27:07+00:00" }, { "name": "symfony/http-foundation", @@ -2265,16 +2265,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.18", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7" + "reference": "88f2c9f7feff86bb7b9105c5151bc2c1404cd64c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7", - "reference": "fca7197bfe9e99dfae7fb1ad3f7f5bd9ef80e1b7", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/88f2c9f7feff86bb7b9105c5151bc2c1404cd64c", + "reference": "88f2c9f7feff86bb7b9105c5151bc2c1404cd64c", "shasum": "" }, "require": { @@ -2359,7 +2359,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.18" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.19" }, "funding": [ { @@ -2375,7 +2375,7 @@ "type": "tidelift" } ], - "time": "2025-01-29T07:25:58+00:00" + "time": "2025-02-26T10:51:37+00:00" }, { "name": "symfony/intl", @@ -3178,20 +3178,20 @@ }, { "name": "symfony/string", - "version": "v6.4.15", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -3201,11 +3201,12 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", + "symfony/emoji": "^7.1", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3244,7 +3245,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.15" + "source": "https://github.com/symfony/string/tree/v7.2.0" }, "funding": [ { @@ -3260,7 +3261,7 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:31:12+00:00" + "time": "2024-11-13T13:31:26+00:00" }, { "name": "symfony/translation-contracts", @@ -3342,16 +3343,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.17", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "238e1aac992b5231c66faf10131ace7bdba97065" + "reference": "d6aecb7196bf610e63ebb64f937c33878d5d03b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/238e1aac992b5231c66faf10131ace7bdba97065", - "reference": "238e1aac992b5231c66faf10131ace7bdba97065", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d6aecb7196bf610e63ebb64f937c33878d5d03b1", + "reference": "d6aecb7196bf610e63ebb64f937c33878d5d03b1", "shasum": "" }, "require": { @@ -3431,7 +3432,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.17" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.19" }, "funding": [ { @@ -3447,38 +3448,36 @@ "type": "tidelift" } ], - "time": "2024-12-19T14:08:41+00:00" + "time": "2025-02-14T09:54:06+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.18", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" + "reference": "82b478c69745d8878eb60f9a049a4d584996f73a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/82b478c69745d8878eb60f9a049a4d584996f73a", + "reference": "82b478c69745d8878eb60f9a049a4d584996f73a", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -3516,7 +3515,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.3" }, "funding": [ { @@ -3532,20 +3531,20 @@ "type": "tidelift" } ], - "time": "2025-01-17T11:26:11+00:00" + "time": "2025-01-17T11:39:41+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.13", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "0f605f72a363f8743001038a176eeb2a11223b51" + "reference": "be6e71b0c257884c1107313de5d247741cfea172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f605f72a363f8743001038a176eeb2a11223b51", - "reference": "0f605f72a363f8743001038a176eeb2a11223b51", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/be6e71b0c257884c1107313de5d247741cfea172", + "reference": "be6e71b0c257884c1107313de5d247741cfea172", "shasum": "" }, "require": { @@ -3593,7 +3592,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.13" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.19" }, "funding": [ { @@ -3609,7 +3608,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-02-13T09:33:32+00:00" }, { "name": "symfony/yaml", @@ -4359,30 +4358,30 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.33.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" + "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", - "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", + "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", @@ -4400,22 +4399,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0" }, - "time": "2024-10-13T11:25:22+00:00" + "time": "2025-02-19T13:28:12+00:00" }, { "name": "phpstan/phpstan", - "version": "1.12.18", + "version": "1.12.21", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "fef9f07814a573399229304bb0046affdf558812" + "reference": "14276fdef70575106a3392a4ed553c06a984df28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/fef9f07814a573399229304bb0046affdf558812", - "reference": "fef9f07814a573399229304bb0046affdf558812", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/14276fdef70575106a3392a4ed553c06a984df28", + "reference": "14276fdef70575106a3392a4ed553c06a984df28", "shasum": "" }, "require": { @@ -4460,7 +4459,7 @@ "type": "github" } ], - "time": "2025-02-13T12:44:44+00:00" + "time": "2025-03-09T09:24:50+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -5913,16 +5912,16 @@ }, { "name": "simplesamlphp/saml2-legacy", - "version": "v4.16.14", + "version": "v4.17.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2-legacy.git", - "reference": "a9ee3a0510780d157ee8e78e7d429e47d736a208" + "reference": "78934f4d776281a2a78821ef6b6be0a2e0e07f78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/a9ee3a0510780d157ee8e78e7d429e47d736a208", - "reference": "a9ee3a0510780d157ee8e78e7d429e47d736a208", + "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/78934f4d776281a2a78821ef6b6be0a2e0e07f78", + "reference": "78934f4d776281a2a78821ef6b6be0a2e0e07f78", "shasum": "" }, "require": { @@ -5967,9 +5966,9 @@ ], "description": "SAML2 PHP library from SimpleSAMLphp", "support": { - "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.16.14" + "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.17.0" }, - "time": "2024-12-01T22:26:03+00:00" + "time": "2025-03-11T17:48:43+00:00" }, { "name": "simplesamlphp/simplesamlphp-module-adfs", @@ -6033,16 +6032,16 @@ }, { "name": "simplesamlphp/simplesamlphp-test-framework", - "version": "v1.8.0", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-test-framework.git", - "reference": "9bf90987925240de593afb1f929a9d373de86a13" + "reference": "8a2c2c10ab010f67d74812bfa13e9ccd5b31eda0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/9bf90987925240de593afb1f929a9d373de86a13", - "reference": "9bf90987925240de593afb1f929a9d373de86a13", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/8a2c2c10ab010f67d74812bfa13e9ccd5b31eda0", + "reference": "8a2c2c10ab010f67d74812bfa13e9ccd5b31eda0", "shasum": "" }, "require": { @@ -6083,36 +6082,36 @@ "issues": "https://github.com/simplesamlphp/simplesamlphp-test-framework/issues", "source": "https://github.com/simplesamlphp/simplesamlphp-test-framework" }, - "time": "2024-12-02T22:00:54+00:00" + "time": "2025-03-10T20:07:41+00:00" }, { "name": "slevomat/coding-standard", - "version": "8.15.0", + "version": "8.16.0", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "7d1d957421618a3803b593ec31ace470177d7817" + "reference": "7748a4282df19daf966fda1d8c60a8aec803c83a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7d1d957421618a3803b593ec31ace470177d7817", - "reference": "7d1d957421618a3803b593ec31ace470177d7817", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7748a4282df19daf966fda1d8c60a8aec803c83a", + "reference": "7748a4282df19daf966fda1d8c60a8aec803c83a", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", - "php": "^7.2 || ^8.0", - "phpstan/phpdoc-parser": "^1.23.1", - "squizlabs/php_codesniffer": "^3.9.0" + "php": "^7.4 || ^8.0", + "phpstan/phpdoc-parser": "^2.1.0", + "squizlabs/php_codesniffer": "^3.11.3" }, "require-dev": { - "phing/phing": "2.17.4", - "php-parallel-lint/php-parallel-lint": "1.3.2", - "phpstan/phpstan": "1.10.60", - "phpstan/phpstan-deprecation-rules": "1.1.4", - "phpstan/phpstan-phpunit": "1.3.16", - "phpstan/phpstan-strict-rules": "1.5.2", - "phpunit/phpunit": "8.5.21|9.6.8|10.5.11" + "phing/phing": "3.0.1", + "php-parallel-lint/php-parallel-lint": "1.4.0", + "phpstan/phpstan": "2.1.6", + "phpstan/phpstan-deprecation-rules": "2.0.1", + "phpstan/phpstan-phpunit": "2.0.4", + "phpstan/phpstan-strict-rules": "2.0.3", + "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.9|12.0.4" }, "type": "phpcodesniffer-standard", "extra": { @@ -6136,7 +6135,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.15.0" + "source": "https://github.com/slevomat/coding-standard/tree/8.16.0" }, "funding": [ { @@ -6148,7 +6147,7 @@ "type": "tidelift" } ], - "time": "2024-03-09T15:20:58+00:00" + "time": "2025-02-23T18:12:49+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -6318,16 +6317,16 @@ }, { "name": "symfony/translation", - "version": "v6.4.13", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66" + "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/bee9bfabfa8b4045a66bf82520e492cddbaffa66", - "reference": "bee9bfabfa8b4045a66bf82520e492cddbaffa66", + "url": "https://api.github.com/repos/symfony/translation/zipball/3b9bf9f33997c064885a7bfc126c14b9daa0e00e", + "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e", "shasum": "" }, "require": { @@ -6393,7 +6392,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.13" + "source": "https://github.com/symfony/translation/tree/v6.4.19" }, "funding": [ { @@ -6409,7 +6408,7 @@ "type": "tidelift" } ], - "time": "2024-09-27T18:14:25+00:00" + "time": "2025-02-13T10:18:43+00:00" }, { "name": "theseer/tokenizer", @@ -6464,7 +6463,7 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": { From 1b7a36d9e39eea02a57ab2be71a4cd5d2f1f9eeb Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 11 Mar 2025 19:00:13 +0100 Subject: [PATCH 53/93] Release v2.3.7 --- composer.json | 2 +- composer.lock | 99 ++++++++++++++++---------------- docs/simplesamlphp-changelog.md | 7 ++- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 5 files changed, 59 insertions(+), 53 deletions(-) diff --git a/composer.json b/composer.json index 287319fc51..6dc46fa974 100644 --- a/composer.json +++ b/composer.json @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.6" + "version": "v2.3.7" } diff --git a/composer.lock b/composer.lock index c41c384b91..63f8b18461 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d3f6e8b74e1927ac872ddaab889b79ed", + "content-hash": "7c92b994b47eaf7496d03fa4d1905169", "packages": [ { "name": "gettext/gettext", @@ -1678,22 +1678,22 @@ }, { "name": "symfony/error-handler", - "version": "v7.2.4", + "version": "v6.4.19", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "aabf79938aa795350c07ce6464dd1985607d95d5" + "reference": "3d4e55cd2b8f1979a65eba9ab749d6466c316f71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/aabf79938aa795350c07ce6464dd1985607d95d5", - "reference": "aabf79938aa795350c07ce6464dd1985607d95d5", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/3d4e55cd2b8f1979a65eba9ab749d6466c316f71", + "reference": "3d4e55cd2b8f1979a65eba9ab749d6466c316f71", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", @@ -1702,7 +1702,7 @@ "require-dev": { "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0" + "symfony/serializer": "^5.4|^6.0|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -1733,7 +1733,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.2.4" + "source": "https://github.com/symfony/error-handler/tree/v6.4.19" }, "funding": [ { @@ -1749,28 +1749,28 @@ "type": "tidelift" } ], - "time": "2025-02-02T20:27:07+00:00" + "time": "2025-02-02T20:16:33+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.2.0", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", - "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<6.4", + "symfony/dependency-injection": "<5.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -1779,13 +1779,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -1813,7 +1813,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/v7.2.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" }, "funding": [ { @@ -1829,7 +1829,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3178,20 +3178,20 @@ }, { "name": "symfony/string", - "version": "v7.2.0", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", - "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", + "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -3201,12 +3201,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -3245,7 +3244,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.2.0" + "source": "https://github.com/symfony/string/tree/v6.4.15" }, "funding": [ { @@ -3261,7 +3260,7 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:31:26+00:00" + "time": "2024-11-13T13:31:12+00:00" }, { "name": "symfony/translation-contracts", @@ -3452,32 +3451,34 @@ }, { "name": "symfony/var-dumper", - "version": "v7.2.3", + "version": "v6.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "82b478c69745d8878eb60f9a049a4d584996f73a" + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/82b478c69745d8878eb60f9a049a4d584996f73a", - "reference": "82b478c69745d8878eb60f9a049a4d584996f73a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", + "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<5.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/uid": "^6.4|^7.0", - "twig/twig": "^3.12" + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", + "twig/twig": "^2.13|^3.0.4" }, "bin": [ "Resources/bin/var-dump-server" @@ -3515,7 +3516,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.2.3" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" }, "funding": [ { @@ -3531,7 +3532,7 @@ "type": "tidelift" } ], - "time": "2025-01-17T11:39:41+00:00" + "time": "2025-01-17T11:26:11+00:00" }, { "name": "symfony/var-exporter", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 3703447d46..19348d6c8a 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,11 +5,16 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.7 +## Version 2.3.8 Released TBD +## Version 2.3.7 + +Released 2025-03-11 + * Fixed loading translations for themes where there is no explicit X-Domain set in the po file. +* Bumped vulnerable saml2-library to v4.17.0 ## Version 2.3.6 diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index ff7fa308a0..4a21439e0a 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.6 +%define version 2.3.7 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 6ee47bdc77..5047d71258 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.6'; + public const VERSION = '2.3.7'; /** * A default value which means that the given option is required. From c18ff8f4de82a4e98f1409a6f3cf3783dd692fb4 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 19 Mar 2025 21:44:24 +0100 Subject: [PATCH 54/93] Downgrade composer-module-installer --- composer.json | 2 +- composer.lock | 24 ++++++++++++------------ docs/simplesamlphp-changelog.md | 3 +++ 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/composer.json b/composer.json index 6dc46fa974..fac91bef6a 100644 --- a/composer.json +++ b/composer.json @@ -62,7 +62,7 @@ "phpmailer/phpmailer": "^6.8", "psr/log": "^3.0", "simplesamlphp/assert": "^1.1", - "simplesamlphp/composer-module-installer": "^1.3", + "simplesamlphp/composer-module-installer": "~1.3.6", "simplesamlphp/saml2": "^4.17", "simplesamlphp/simplesamlphp-assets-base": "~2.3.0", "simplesamlphp/xml-security": "^1.7", diff --git a/composer.lock b/composer.lock index 63f8b18461..6d68be77d1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "7c92b994b47eaf7496d03fa4d1905169", + "content-hash": "29ef9d5dcdd882c62fcd8e680a1d0820", "packages": [ { "name": "gettext/gettext", @@ -882,26 +882,26 @@ }, { "name": "simplesamlphp/composer-module-installer", - "version": "v1.4.0", + "version": "v1.3.6", "source": { "type": "git", "url": "https://github.com/simplesamlphp/composer-module-installer.git", - "reference": "edb2155d200e2a208816d06f42cfa78bfd9e7cf4" + "reference": "58ff5fcb1e060015ba254c993ae11594662ffd24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/edb2155d200e2a208816d06f42cfa78bfd9e7cf4", - "reference": "edb2155d200e2a208816d06f42cfa78bfd9e7cf4", + "url": "https://api.github.com/repos/simplesamlphp/composer-module-installer/zipball/58ff5fcb1e060015ba254c993ae11594662ffd24", + "reference": "58ff5fcb1e060015ba254c993ae11594662ffd24", "shasum": "" }, "require": { - "composer-plugin-api": "^2.6", - "php": "^8.1", - "simplesamlphp/assert": "^1.6" + "composer-plugin-api": "^1.1 || ^2.0", + "php": "^7.4 || ^8.0", + "simplesamlphp/assert": "^0.8.0 || ^1.0" }, "require-dev": { - "composer/composer": "^2.8.3", - "simplesamlphp/simplesamlphp-test-framework": "^1.8.0" + "composer/composer": "^2.4", + "simplesamlphp/simplesamlphp-test-framework": "^1.2.1" }, "type": "composer-plugin", "extra": { @@ -919,9 +919,9 @@ "description": "A Composer plugin that allows installing SimpleSAMLphp modules through Composer.", "support": { "issues": "https://github.com/simplesamlphp/composer-module-installer/issues", - "source": "https://github.com/simplesamlphp/composer-module-installer/tree/v1.4.0" + "source": "https://github.com/simplesamlphp/composer-module-installer/tree/v1.3.6" }, - "time": "2024-12-08T16:57:03+00:00" + "time": "2025-03-19T20:38:37+00:00" }, { "name": "simplesamlphp/composer-xmlprovider-installer", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 19348d6c8a..b2c5c71ff4 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -9,6 +9,9 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD +* Downgrade simplesamlphp/composer-module-installer to 1.3.x to keep things working with older (OS-supplied) + versions of composer + ## Version 2.3.7 Released 2025-03-11 From 7e3dc52ea0af1c3bd7e32e95e44b0001c1e3ff37 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Thu, 20 Mar 2025 10:00:21 +1000 Subject: [PATCH 55/93] i18n allow the substitution of SPNAME and other TWIG variables (#2409) * i18n allow the substitution of SPNAME and other TWIG variables This was raised with solution at https://github.com/simplesamlphp/simplesamlphp/issues/2407 I have added a comment to the method doc block to warn about these extra parameters which are expected in some contexts * leave that blank line alone --- src/SimpleSAML/Locale/Translate.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/SimpleSAML/Locale/Translate.php b/src/SimpleSAML/Locale/Translate.php index 36716ba75a..a341639537 100644 --- a/src/SimpleSAML/Locale/Translate.php +++ b/src/SimpleSAML/Locale/Translate.php @@ -72,6 +72,16 @@ public static function addDefaultDomain(string $domain): void * * @param string|null $original The string before translation. * + * + * NOTE: This may be called from TwigTranslator::trans() + * which will pass the following arguments. + * The $id will match $original above but there are other arguments which may also be used in this method. + * + * @param string $id + * @param array $parameters + * @param string|null $domain + * @param string|null $locale + * * @return string The translated string. */ public static function translateSingularGettext(?string $original): string @@ -88,7 +98,7 @@ public static function translateSingularGettext(?string $original): string foreach (self::$defaultDomains as $d) { $text = TranslatorFunctions::getTranslator()->dgettext($d, $original); if ($text != $original) { - return $text; + break; } } From b26c81a908f4ca4eb0153248db22d9b92fa1c1e9 Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Fri, 21 Mar 2025 10:00:25 +1000 Subject: [PATCH 56/93] i18n warn if a module has an unexpected domain in its po file. (#2408) This is a follow up to the theme domain handling update from https://github.com/simplesamlphp/simplesamlphp/issues/2384 If you copy the translations for an existing theme or module and forget to change the domain setting in the po file then it might not be found by SSP. With this warning message you will at least have some indication as to why this might have happened. --- src/SimpleSAML/Locale/Localization.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/SimpleSAML/Locale/Localization.php b/src/SimpleSAML/Locale/Localization.php index f9f3833e78..f98318c082 100644 --- a/src/SimpleSAML/Locale/Localization.php +++ b/src/SimpleSAML/Locale/Localization.php @@ -264,6 +264,14 @@ private function loadGettextGettextFromPO( if (empty($translations->getDomain())) { $translations->setDomain($domain); } + if ($domain != $translations->getDomain()) { + Logger::warning(sprintf( + "The translation file at %s has domain %s but is expected to have a domain %s", + $file->getPath(), + $translations->getDomain(), + $domain, + )); + } $arrayGenerator = new ArrayGenerator(); $this->translator->addTranslations( From 5ffcfebfb5e015c7964587cfd1a98b1093c1e0c3 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 26 Mar 2025 11:59:04 +0100 Subject: [PATCH 57/93] Bump metarefresh --- .github/build/full.json | 2 +- docs/simplesamlphp-changelog.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/build/full.json b/.github/build/full.json index 7e93d7ebec..69743931de 100644 --- a/.github/build/full.json +++ b/.github/build/full.json @@ -22,7 +22,7 @@ }, "metarefresh": { "repository": "simplesamlphp/simplesamlphp-module-metarefresh", - "version": "~1.2.2" + "version": "~1.2.4" }, "radius": { "repository": "simplesamlphp/simplesamlphp-module-radius", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index b2c5c71ff4..eb61403033 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -12,6 +12,10 @@ Released TBD * Downgrade simplesamlphp/composer-module-installer to 1.3.x to keep things working with older (OS-supplied) versions of composer +`metarefresh` + +* Fixed parsing of large metadata files (v1.2.4) + ## Version 2.3.7 Released 2025-03-11 From 25e53c06e5a75d53ad9d72a7cb9e3b33d2a1deff Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 7 Apr 2025 22:00:30 +0200 Subject: [PATCH 58/93] Replace super-linter with a reusable workflow --- .github/workflows/php.yml | 267 ++++++++++++++++---------------- composer.json | 2 +- composer.lock | 217 +++++++++++++------------- tools/linters/.eslintrc.js | 14 -- tools/linters/.stylelintrc.json | 4 - tools/linters/eslint.config.js | 19 +++ 6 files changed, 266 insertions(+), 257 deletions(-) delete mode 100644 tools/linters/.eslintrc.js create mode 100644 tools/linters/eslint.config.js diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 4a51a746c7..08ff0acd0e 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -13,32 +13,150 @@ on: # yamllint disable-line rule:truthy - '**.md' jobs: + phplinter: + name: 'PHP-Linter' + strategy: + fail-fast: false + matrix: + php-version: ['8.1', '8.2', '8.3', '8.4'] + + uses: simplesamlphp/simplesamlphp-test-framework/.github/workflows/reusable_phplinter.yml@v1.9.2 + with: + php-version: ${{ matrix.php-version }} + linter: - name: Linter - runs-on: ['ubuntu-latest'] + name: 'Linter' + strategy: + fail-fast: false + + uses: simplesamlphp/simplesamlphp-test-framework/.github/workflows/reusable_linter.yml@v1.9.2 + with: + enable_eslinter: true + enable_jsonlinter: true + enable_stylelinter: true + enable_yamllinter: true + + unit-tests-linux: + name: "Syntax and unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}" + runs-on: ${{ matrix.operating-system }} + needs: [phplinter, linter] + strategy: + fail-fast: false + matrix: + operating-system: [ubuntu-latest] + php-versions: ['8.1', '8.2', '8.3'] + + steps: + - name: Setup PHP, with composer and extensions + # https://github.com/shivammathur/setup-php + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: intl, mbstring, mysql, pdo, pdo_sqlite, soap, xml + tools: composer:v2 + ini-values: error_reporting=E_ALL + coverage: xdebug + + - name: Setup problem matchers for PHP + run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" + + - name: Setup problem matchers for PHPUnit + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + + - name: Set git to use LF + run: | + git config --global core.autocrlf false + git config --global core.eol lf + + - uses: actions/checkout@v4 + + - name: Copy config.php.dist to config.php + run: cp config/config.php.dist config/config.php + + - name: Create SimpleSAMLphp cache directory + run: sudo mkdir -p /var/cache/simplesamlphp && sudo chmod 777 /var/cache/simplesamlphp + + - name: Get composer cache directory + run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV" + + - name: Cache composer dependencies + uses: actions/cache@v4 + with: + path: $COMPOSER_CACHE + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install Composer dependencies + run: composer install --no-progress --prefer-dist --optimize-autoloader + + - name: Run unit tests with coverage + if: ${{ matrix.php-versions == '8.1' }} + run: ./vendor/bin/phpunit + + - name: Run unit tests (no coverage) + if: ${{ matrix.php-versions != '8.1' }} + run: ./vendor/bin/phpunit --no-coverage + + - name: Save coverage data + if: ${{ matrix.php-versions == '8.1' }} + uses: actions/upload-artifact@v4 + with: + name: coverage-data + path: ${{ github.workspace }}/build + + unit-tests-windows: + name: "Syntax and unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}" + runs-on: ${{ matrix.operating-system }} + needs: [phplinter, linter] + strategy: + fail-fast: true + matrix: + operating-system: [windows-latest] + php-versions: ['8.1', '8.2', '8.3'] steps: + - name: Setup PHP, with composer and extensions + # https://github.com/shivammathur/setup-php + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + extensions: intl, mbstring, mysql, pdo, pdo_sqlite, soap, xml + tools: composer:v2 + ini-values: error_reporting=E_ALL + coverage: none + + - name: Setup problem matchers for PHP + run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" + + - name: Setup problem matchers for PHPUnit + run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" + + - name: Set git to use LF + run: | + git config --global core.autocrlf false + git config --global core.eol lf + - uses: actions/checkout@v4 + + - name: Get composer cache directory + run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$env:GITHUB_ENV" + + - name: Cache composer dependencies + uses: actions/cache@v4 with: - fetch-depth: 0 - - - name: Lint Code Base - uses: super-linter/super-linter/slim@v6 - env: - # To report GitHub Actions status checks - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - LOG_LEVEL: NOTICE - VALIDATE_ALL_CODEBASE: true - LINTER_RULES_PATH: 'tools/linters' - VALIDATE_CSS: true - VALIDATE_JAVASCRIPT_ES: true - VALIDATE_JSON: true - VALIDATE_PHP_BUILTIN: true - VALIDATE_YAML: true - VALIDATE_GITHUB_ACTIONS: true + path: $COMPOSER_CACHE + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install Composer dependencies + run: composer install --no-progress --prefer-dist --optimize-autoloader --no-scripts + + - name: Run unit tests + run: ./vendor/bin/phpunit --no-coverage quality: name: Quality control + needs: [unit-tests-linux] runs-on: [ubuntu-latest] steps: @@ -107,6 +225,7 @@ jobs: security: name: Security checks + needs: [unit-tests-linux] runs-on: [ubuntu-latest] steps: - name: Setup PHP, with composer and extensions @@ -145,118 +264,6 @@ jobs: - name: Security check for updated dependencies run: composer audit - unit-tests-linux: - name: "Syntax and unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}" - runs-on: ${{ matrix.operating-system }} - needs: [linter, quality, security] - strategy: - fail-fast: false - matrix: - operating-system: [ubuntu-latest] - php-versions: ['8.1', '8.2', '8.3', '8.4'] - - steps: - - name: Setup PHP, with composer and extensions - # https://github.com/shivammathur/setup-php - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-versions }} - extensions: intl, mbstring, mysql, pdo, pdo_sqlite, xml - tools: composer:v2 - ini-values: error_reporting=E_ALL - coverage: xdebug - - - name: Setup problem matchers for PHP - run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" - - - name: Setup problem matchers for PHPUnit - run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - - - name: Set git to use LF - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - - uses: actions/checkout@v4 - - - name: Get composer cache directory - run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$GITHUB_ENV" - - - name: Cache composer dependencies - uses: actions/cache@v4 - with: - path: $COMPOSER_CACHE - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install Composer dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - - name: Run unit tests with coverage - if: ${{ matrix.php-versions == '8.1' }} - run: ./vendor/bin/phpunit - - - name: Run unit tests (no coverage) - if: ${{ matrix.php-versions != '8.1' }} - run: ./vendor/bin/phpunit --no-coverage - - - name: Save coverage data - if: ${{ matrix.php-versions == '8.1' }} - uses: actions/upload-artifact@v4 - with: - name: coverage-data - path: ${{ github.workspace }}/build - - unit-tests-windows: - name: "Syntax and unit tests, PHP ${{ matrix.php-versions }}, ${{ matrix.operating-system }}" - runs-on: ${{ matrix.operating-system }} - needs: [linter, quality, security] - strategy: - fail-fast: true - matrix: - operating-system: [windows-latest] - php-versions: ['8.1', '8.2', '8.3', '8.4'] - - steps: - - name: Setup PHP, with composer and extensions - # https://github.com/shivammathur/setup-php - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-versions }} - extensions: intl, mbstring, mysql, pdo, pdo_sqlite, xml - tools: composer:v2 - ini-values: error_reporting=E_ALL - coverage: none - - - name: Setup problem matchers for PHP - run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" - - - name: Setup problem matchers for PHPUnit - run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - - - name: Set git to use LF - run: | - git config --global core.autocrlf false - git config --global core.eol lf - - - uses: actions/checkout@v4 - - - name: Get composer cache directory - run: echo COMPOSER_CACHE="$(composer config cache-files-dir)" >> "$env:GITHUB_ENV" - - - name: Cache composer dependencies - uses: actions/cache@v4 - with: - path: $COMPOSER_CACHE - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - - name: Install Composer dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - - name: Run unit tests - run: ./vendor/bin/phpunit --no-coverage - coverage: name: Code coverage runs-on: [ubuntu-latest] diff --git a/composer.json b/composer.json index fac91bef6a..2018d47a41 100644 --- a/composer.json +++ b/composer.json @@ -94,7 +94,7 @@ "mikey179/vfsstream": "~1.6", "predis/predis": "^2.2", "simplesamlphp/simplesamlphp-module-adfs": "^2.1", - "simplesamlphp/simplesamlphp-test-framework": "^1.5.4", + "simplesamlphp/simplesamlphp-test-framework": "^1.9.2", "symfony/translation": "^6.4" }, "suggest": { diff --git a/composer.lock b/composer.lock index 6d68be77d1..a9ed7c23b9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "29ef9d5dcdd882c62fcd8e680a1d0820", + "content-hash": "af6f31e28c17f58b6b0239d1ca7eac89", "packages": [ { "name": "gettext/gettext", @@ -82,16 +82,16 @@ }, { "name": "gettext/languages", - "version": "2.10.0", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/php-gettext/Languages.git", - "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab" + "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Languages/zipball/4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", - "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", + "url": "https://api.github.com/repos/php-gettext/Languages/zipball/0b0b0851c55168e1dfb14305735c64019732b5f1", + "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1", "shasum": "" }, "require": { @@ -101,7 +101,8 @@ "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" }, "bin": [ - "bin/export-plural-rules" + "bin/export-plural-rules", + "bin/import-cldr-data" ], "type": "library", "autoload": { @@ -140,7 +141,7 @@ ], "support": { "issues": "https://github.com/php-gettext/Languages/issues", - "source": "https://github.com/php-gettext/Languages/tree/2.10.0" + "source": "https://github.com/php-gettext/Languages/tree/2.12.1" }, "funding": [ { @@ -152,7 +153,7 @@ "type": "github" } ], - "time": "2022-10-18T15:00:10+00:00" + "time": "2025-03-19T11:14:02+00:00" }, { "name": "gettext/translator", @@ -230,16 +231,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.7.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", - "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", "shasum": "" }, "require": { @@ -326,7 +327,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.0" + "source": "https://github.com/guzzle/psr7/tree/2.7.1" }, "funding": [ { @@ -342,7 +343,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T11:15:46+00:00" + "time": "2025-03-27T12:30:47+00:00" }, { "name": "phpmailer/phpmailer", @@ -967,16 +968,16 @@ }, { "name": "simplesamlphp/saml2", - "version": "v4.17.0", + "version": "v4.18.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "bdf16d1021363a0819c35806124a20e74a78c2c9" + "reference": "78b1c6735db8e2f78dcea9bcac0317ad2b200d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/bdf16d1021363a0819c35806124a20e74a78c2c9", - "reference": "bdf16d1021363a0819c35806124a20e74a78c2c9", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/78b1c6735db8e2f78dcea9bcac0317ad2b200d72", + "reference": "78b1c6735db8e2f78dcea9bcac0317ad2b200d72", "shasum": "" }, "require": { @@ -1022,9 +1023,9 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.17.0" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.18.1" }, - "time": "2025-03-11T17:35:33+00:00" + "time": "2025-03-16T11:37:44+00:00" }, { "name": "simplesamlphp/simplesamlphp-assets-base", @@ -1189,16 +1190,16 @@ }, { "name": "symfony/cache", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "342e87b15ac02e4b4f0924ddc368e75d5262aab3" + "reference": "95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/342e87b15ac02e4b4f0924ddc368e75d5262aab3", - "reference": "342e87b15ac02e4b4f0924ddc368e75d5262aab3", + "url": "https://api.github.com/repos/symfony/cache/zipball/95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432", + "reference": "95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432", "shasum": "" }, "require": { @@ -1265,7 +1266,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.19" + "source": "https://github.com/symfony/cache/tree/v6.4.20" }, "funding": [ { @@ -1281,7 +1282,7 @@ "type": "tidelift" } ], - "time": "2025-02-26T09:12:57+00:00" + "time": "2025-03-08T15:51:34+00:00" }, { "name": "symfony/cache-contracts", @@ -1436,16 +1437,16 @@ }, { "name": "symfony/console", - "version": "v6.4.17", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04" + "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04", - "reference": "799445db3f15768ecc382ac5699e6da0520a0a04", + "url": "https://api.github.com/repos/symfony/console/zipball/2e4af9c952617cc3f9559ff706aee420a8464c36", + "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36", "shasum": "" }, "require": { @@ -1510,7 +1511,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.17" + "source": "https://github.com/symfony/console/tree/v6.4.20" }, "funding": [ { @@ -1526,20 +1527,20 @@ "type": "tidelift" } ], - "time": "2024-12-07T12:07:30+00:00" + "time": "2025-03-03T17:16:38+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "b343c3b2f1539fe41331657b37d5c96c1d1ea842" + "reference": "c49796a9184a532843e78e50df9e55708b92543a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/b343c3b2f1539fe41331657b37d5c96c1d1ea842", - "reference": "b343c3b2f1539fe41331657b37d5c96c1d1ea842", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c49796a9184a532843e78e50df9e55708b92543a", + "reference": "c49796a9184a532843e78e50df9e55708b92543a", "shasum": "" }, "require": { @@ -1547,7 +1548,7 @@ "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.2.10|^7.0" + "symfony/var-exporter": "^6.4.20|^7.2.5" }, "conflict": { "ext-psr": "<1.1|>=2", @@ -1591,7 +1592,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.19" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.20" }, "funding": [ { @@ -1607,7 +1608,7 @@ "type": "tidelift" } ], - "time": "2025-02-20T10:02:49+00:00" + "time": "2025-03-13T09:55:08+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1678,16 +1679,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "3d4e55cd2b8f1979a65eba9ab749d6466c316f71" + "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/3d4e55cd2b8f1979a65eba9ab749d6466c316f71", - "reference": "3d4e55cd2b8f1979a65eba9ab749d6466c316f71", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/aa3bcf4f7674719df078e61cc8062e5b7f752031", + "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031", "shasum": "" }, "require": { @@ -1733,7 +1734,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.19" + "source": "https://github.com/symfony/error-handler/tree/v6.4.20" }, "funding": [ { @@ -1749,7 +1750,7 @@ "type": "tidelift" } ], - "time": "2025-02-02T20:16:33+00:00" + "time": "2025-03-01T13:00:38+00:00" }, { "name": "symfony/event-dispatcher", @@ -2039,16 +2040,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "078a6f11cb34d208d6efc74003d77f66a09fa3c2" + "reference": "51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/078a6f11cb34d208d6efc74003d77f66a09fa3c2", - "reference": "078a6f11cb34d208d6efc74003d77f66a09fa3c2", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce", + "reference": "51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce", "shasum": "" }, "require": { @@ -2168,7 +2169,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.19" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.20" }, "funding": [ { @@ -2184,7 +2185,7 @@ "type": "tidelift" } ], - "time": "2025-02-26T07:27:07+00:00" + "time": "2025-03-23T16:46:24+00:00" }, { "name": "symfony/http-foundation", @@ -2265,16 +2266,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "88f2c9f7feff86bb7b9105c5151bc2c1404cd64c" + "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/88f2c9f7feff86bb7b9105c5151bc2c1404cd64c", - "reference": "88f2c9f7feff86bb7b9105c5151bc2c1404cd64c", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6be6db31bc74693ce5516e1fd5e5ff1171005e37", + "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37", "shasum": "" }, "require": { @@ -2359,7 +2360,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.19" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.20" }, "funding": [ { @@ -2375,7 +2376,7 @@ "type": "tidelift" } ], - "time": "2025-02-26T10:51:37+00:00" + "time": "2025-03-28T13:27:10+00:00" }, { "name": "symfony/intl", @@ -3342,16 +3343,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "d6aecb7196bf610e63ebb64f937c33878d5d03b1" + "reference": "bb423dfaa51b6d88b1d64197ae695a0c8ac73778" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d6aecb7196bf610e63ebb64f937c33878d5d03b1", - "reference": "d6aecb7196bf610e63ebb64f937c33878d5d03b1", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/bb423dfaa51b6d88b1d64197ae695a0c8ac73778", + "reference": "bb423dfaa51b6d88b1d64197ae695a0c8ac73778", "shasum": "" }, "require": { @@ -3382,7 +3383,7 @@ "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/form": "^6.4|^7.0", + "symfony/form": "^6.4.20|^7.2.5", "symfony/html-sanitizer": "^6.1|^7.0", "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -3431,7 +3432,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.19" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.20" }, "funding": [ { @@ -3447,7 +3448,7 @@ "type": "tidelift" } ], - "time": "2025-02-14T09:54:06+00:00" + "time": "2025-03-28T13:08:36+00:00" }, { "name": "symfony/var-dumper", @@ -3536,16 +3537,16 @@ }, { "name": "symfony/var-exporter", - "version": "v6.4.19", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "be6e71b0c257884c1107313de5d247741cfea172" + "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/be6e71b0c257884c1107313de5d247741cfea172", - "reference": "be6e71b0c257884c1107313de5d247741cfea172", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/998df255e9e6a15a36ae35e9c6cd818c17cf92a2", + "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2", "shasum": "" }, "require": { @@ -3593,7 +3594,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.19" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.20" }, "funding": [ { @@ -3609,20 +3610,20 @@ "type": "tidelift" } ], - "time": "2025-02-13T09:33:32+00:00" + "time": "2025-03-13T09:55:08+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.18", + "version": "v6.4.20", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5" + "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", - "reference": "bf598c9d9bb4a22f495a4e26e4c4fce2f8ecefc5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/28ee818fce4a73ac1474346b94e4b966f665c53f", + "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f", "shasum": "" }, "require": { @@ -3665,7 +3666,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.18" + "source": "https://github.com/symfony/yaml/tree/v6.4.20" }, "funding": [ { @@ -3681,7 +3682,7 @@ "type": "tidelift" } ], - "time": "2025-01-07T09:44:41+00:00" + "time": "2025-02-27T20:15:30+00:00" }, { "name": "twig/intl-extra", @@ -4406,16 +4407,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.21", + "version": "1.12.23", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "14276fdef70575106a3392a4ed553c06a984df28" + "reference": "29201e7a743a6ab36f91394eab51889a82631428" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/14276fdef70575106a3392a4ed553c06a984df28", - "reference": "14276fdef70575106a3392a4ed553c06a984df28", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/29201e7a743a6ab36f91394eab51889a82631428", + "reference": "29201e7a743a6ab36f91394eab51889a82631428", "shasum": "" }, "require": { @@ -4460,7 +4461,7 @@ "type": "github" } ], - "time": "2025-03-09T09:24:50+00:00" + "time": "2025-03-23T14:57:32+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -5913,16 +5914,16 @@ }, { "name": "simplesamlphp/saml2-legacy", - "version": "v4.17.0", + "version": "v4.18.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2-legacy.git", - "reference": "78934f4d776281a2a78821ef6b6be0a2e0e07f78" + "reference": "9bbf43a5ace9c8e5107dad3a613b014b456ecd56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/78934f4d776281a2a78821ef6b6be0a2e0e07f78", - "reference": "78934f4d776281a2a78821ef6b6be0a2e0e07f78", + "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/9bbf43a5ace9c8e5107dad3a613b014b456ecd56", + "reference": "9bbf43a5ace9c8e5107dad3a613b014b456ecd56", "shasum": "" }, "require": { @@ -5967,9 +5968,9 @@ ], "description": "SAML2 PHP library from SimpleSAMLphp", "support": { - "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.17.0" + "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.18.1" }, - "time": "2025-03-11T17:48:43+00:00" + "time": "2025-03-16T11:50:02+00:00" }, { "name": "simplesamlphp/simplesamlphp-module-adfs", @@ -6033,16 +6034,16 @@ }, { "name": "simplesamlphp/simplesamlphp-test-framework", - "version": "1.8.2", + "version": "v1.9.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-test-framework.git", - "reference": "8a2c2c10ab010f67d74812bfa13e9ccd5b31eda0" + "reference": "b8506d7b59c658ff4bb9bdd301bf24d1635019d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/8a2c2c10ab010f67d74812bfa13e9ccd5b31eda0", - "reference": "8a2c2c10ab010f67d74812bfa13e9ccd5b31eda0", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/b8506d7b59c658ff4bb9bdd301bf24d1635019d1", + "reference": "b8506d7b59c658ff4bb9bdd301bf24d1635019d1", "shasum": "" }, "require": { @@ -6083,20 +6084,20 @@ "issues": "https://github.com/simplesamlphp/simplesamlphp-test-framework/issues", "source": "https://github.com/simplesamlphp/simplesamlphp-test-framework" }, - "time": "2025-03-10T20:07:41+00:00" + "time": "2025-04-07T20:08:55+00:00" }, { "name": "slevomat/coding-standard", - "version": "8.16.0", + "version": "8.16.2", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "7748a4282df19daf966fda1d8c60a8aec803c83a" + "reference": "8bf0408a9cf30687d87957d364de9a3d5d00d948" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7748a4282df19daf966fda1d8c60a8aec803c83a", - "reference": "7748a4282df19daf966fda1d8c60a8aec803c83a", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/8bf0408a9cf30687d87957d364de9a3d5d00d948", + "reference": "8bf0408a9cf30687d87957d364de9a3d5d00d948", "shasum": "" }, "require": { @@ -6108,11 +6109,11 @@ "require-dev": { "phing/phing": "3.0.1", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.6", + "phpstan/phpstan": "2.1.11", "phpstan/phpstan-deprecation-rules": "2.0.1", - "phpstan/phpstan-phpunit": "2.0.4", - "phpstan/phpstan-strict-rules": "2.0.3", - "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.9|12.0.4" + "phpstan/phpstan-phpunit": "2.0.6", + "phpstan/phpstan-strict-rules": "2.0.4", + "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.15|12.0.10" }, "type": "phpcodesniffer-standard", "extra": { @@ -6136,7 +6137,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.16.0" + "source": "https://github.com/slevomat/coding-standard/tree/8.16.2" }, "funding": [ { @@ -6148,20 +6149,20 @@ "type": "tidelift" } ], - "time": "2025-02-23T18:12:49+00:00" + "time": "2025-03-27T19:37:58+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.11.3", + "version": "3.12.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10" + "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", - "reference": "ba05f990e79cbe69b9f35c8c1ac8dca7eecc3a10", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ea16a1f3719783345febd3aab41beb55c8c84bfd", + "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd", "shasum": "" }, "require": { @@ -6228,11 +6229,11 @@ "type": "open_collective" }, { - "url": "https://thanks.dev/phpcsstandards", + "url": "https://thanks.dev/u/gh/phpcsstandards", "type": "thanks_dev" } ], - "time": "2025-01-23T17:04:15+00:00" + "time": "2025-04-04T12:57:55+00:00" }, { "name": "symfony/phpunit-bridge", diff --git a/tools/linters/.eslintrc.js b/tools/linters/.eslintrc.js deleted file mode 100644 index eeca409acb..0000000000 --- a/tools/linters/.eslintrc.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - ignorePatterns: ["!/tools/linters/.eslintrc.yml", "!/tools/linters/.stylelintrc.json"], - parserOptions: { - ecmaVersion: 2015, - sourceType: "module" - }, - overrides: [ - { - files: ["*.json"], - extends: ["plugin:jsonc/recommended-with-json"], - parser: "jsonc-eslint-parser", - } - ] -}; diff --git a/tools/linters/.stylelintrc.json b/tools/linters/.stylelintrc.json index 3296f8568c..a278b06e44 100644 --- a/tools/linters/.stylelintrc.json +++ b/tools/linters/.stylelintrc.json @@ -1,8 +1,4 @@ { - "extends": [ - "stylelint-config-standard-scss", - "stylelint-config-recommended-scss" - ], "overrides": [ { "files": ["*.scss", "**/*.scss"], diff --git a/tools/linters/eslint.config.js b/tools/linters/eslint.config.js new file mode 100644 index 0000000000..c1e1c39cac --- /dev/null +++ b/tools/linters/eslint.config.js @@ -0,0 +1,19 @@ +// eslint.config.js +const { defineConfig } = require("eslint/config"); + +module.exports = defineConfig([ + { + ignores: ["!/tools/linters/.eslint.config.js", "!/tools/linters/.stylelintrc.json"], + languageOptions: { + ecmaVersion: 2015, + sourceType: "module" + }, + files: [ + "**/*.js", + ], + rules: { + semi: "error", + "prefer-const": "error" + } + } +]); From 958899016159e7c163c36f143321b0abcae1b2c4 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 7 Apr 2025 23:17:19 +0200 Subject: [PATCH 59/93] Fix linter-issues --- modules/core/public/assets/js/loginuserpass.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/public/assets/js/loginuserpass.js b/modules/core/public/assets/js/loginuserpass.js index 6f83220cee..7a258b27dd 100644 --- a/modules/core/public/assets/js/loginuserpass.js +++ b/modules/core/public/assets/js/loginuserpass.js @@ -4,7 +4,7 @@ ready(function () { var replacement = document.createTextNode(button.getAttribute("data-default")); button.replaceChild(replacement, button.childNodes[0]); button.disabled = false; - } + }; var form = document.getElementById("f"); form.onsubmit = function () { @@ -12,6 +12,6 @@ ready(function () { var replacement = document.createTextNode(button.getAttribute("data-processing")); button.replaceChild(replacement, button.childNodes[0]); button.disabled = true; - } + }; }); From 3f24ad40416060bb694e4f4f89dc4a908ba43d2a Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 7 Apr 2025 23:53:38 +0200 Subject: [PATCH 60/93] Fix unit tests --- tests/src/SimpleSAML/ConfigurationTest.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/src/SimpleSAML/ConfigurationTest.php b/tests/src/SimpleSAML/ConfigurationTest.php index 5d366620d6..d20c0c2eee 100644 --- a/tests/src/SimpleSAML/ConfigurationTest.php +++ b/tests/src/SimpleSAML/ConfigurationTest.php @@ -35,7 +35,11 @@ public function testLoadDefaultInstance(): void { $this->expectException(Error\CriticalConfigurationError::class); Configuration::loadFromArray(['key' => 'value'], '', 'dummy'); + + // Point to a directory that will have no Configuration file + putenv('SIMPLESAMLPHP_CONFIG_DIR=/'); Configuration::getInstance(); + putenv('SIMPLESAMLPHP_CONFIG_DIR'); } @@ -45,6 +49,8 @@ public function testLoadDefaultInstance(): void */ public function testCriticalConfigurationError(): void { + // Do not rely on the default directory. Target another directory. + putenv('SIMPLESAMLPHP_CONFIG_DIR=/'); try { Configuration::getInstance(); $this->fail('Exception expected'); @@ -57,6 +63,7 @@ public function testCriticalConfigurationError(): void */ $c = Configuration::getInstance(); $this->assertNotEmpty($c->toArray()); + putenv('SIMPLESAMLPHP_CONFIG_DIR'); } From b32a9de72da8a0dba38c43705caf71fbeebfe3a0 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 9 Apr 2025 16:47:36 +0200 Subject: [PATCH 61/93] Fix links --- modules/saml/docs/sp.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/saml/docs/sp.md b/modules/saml/docs/sp.md index 6025387439..de53d333ec 100644 --- a/modules/saml/docs/sp.md +++ b/modules/saml/docs/sp.md @@ -67,7 +67,7 @@ All these parameters override the equivalent option from the configuration. ## Authentication data Some SAML-specific attributes are available to the application after authentication. -To retrieve these attributes, the application can use the `getAuthData()`-function from the [SP API](./simplesamlphp-sp-api). +To retrieve these attributes, the application can use the `getAuthData()`-function from the [SP API](../simplesamlphp-sp-api). The following attributes are available: `saml:sp:IdP` @@ -100,7 +100,7 @@ The following attributes are available: : List of Assertion Consumer Services in the generated metadata. Specified in the format detailed in the - [Metadata endpoints](./simplesamlphp-metadata-endpoints) documentation. + [Metadata endpoints](../simplesamlphp-metadata-endpoints) documentation. Note that this list is taken at face value, so it's not useful to list anything here that the SP auth source does not actually support (unless the URLs point externally). From 89094075d6744afb792e710c1c135f6dd7d64455 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 10 Apr 2025 12:46:29 +0200 Subject: [PATCH 62/93] Skip test if xdebug.mode does not contain develop (#2419) --- .../src/SimpleSAML/SessionHandlerPHPTest.php | 24 +++++++++++++++---- tests/src/SimpleSAML/Utils/HTTPTest.php | 16 ++++++++++++- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/tests/src/SimpleSAML/SessionHandlerPHPTest.php b/tests/src/SimpleSAML/SessionHandlerPHPTest.php index 7f2b1b45a1..75ad24b730 100644 --- a/tests/src/SimpleSAML/SessionHandlerPHPTest.php +++ b/tests/src/SimpleSAML/SessionHandlerPHPTest.php @@ -5,6 +5,8 @@ namespace SimpleSAML\Test; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DoesNotPerformAssertions; use PHPUnit\Framework\Attributes\RequiresPhpExtension; use PHPUnit\Framework\Attributes\RunInSeparateProcess; use SimpleSAML\{Configuration, SessionHandlerPHP}; @@ -50,6 +52,18 @@ protected function tearDown(): void } + /** + */ + #[DoesNotPerformAssertions] + #[RequiresPhpExtension('xdebug')] + public function testXdebugMode(): void + { + if (!in_array('develop', xdebug_info('mode'))) { + $this->markTestSkipped('xdebug.mode != develop'); + } + } + + /** */ public function testGetSessionHandler(): void @@ -62,7 +76,7 @@ public function testGetSessionHandler(): void /** */ - #[RequiresPhpExtension('xdebug')] + #[Depends('testXdebugMode')] #[RunInSeparateProcess] public function testSetCookie(): void { @@ -85,7 +99,7 @@ public function testSetCookie(): void /** */ - #[RequiresPhpExtension('xdebug')] + #[Depends('testXdebugMode')] #[RunInSeparateProcess] public function testSetCookieSameSiteNone(): void { @@ -105,7 +119,7 @@ public function testSetCookieSameSiteNone(): void /** */ - #[RequiresPhpExtension('xdebug')] + #[Depends('testXdebugMode')] #[RunInSeparateProcess] public function testSetCookieSameSiteLax(): void { @@ -125,7 +139,7 @@ public function testSetCookieSameSiteLax(): void /** */ - #[RequiresPhpExtension('xdebug')] + #[Depends('testXdebugMode')] #[RunInSeparateProcess] public function testSetCookieSameSiteStrict(): void { @@ -145,7 +159,7 @@ public function testSetCookieSameSiteStrict(): void /** */ - #[RequiresPhpExtension('xdebug')] + #[Depends('testXdebugMode')] #[RunInSeparateProcess] public function testRestorePrevious(): void { diff --git a/tests/src/SimpleSAML/Utils/HTTPTest.php b/tests/src/SimpleSAML/Utils/HTTPTest.php index e48b66210c..b20782889b 100644 --- a/tests/src/SimpleSAML/Utils/HTTPTest.php +++ b/tests/src/SimpleSAML/Utils/HTTPTest.php @@ -6,6 +6,8 @@ use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; +use PHPUnit\Framework\Attributes\Depends; +use PHPUnit\Framework\Attributes\DoesNotPerformAssertions; use PHPUnit\Framework\Attributes\RequiresPhpExtension; use PHPUnit\Framework\Attributes\RunInSeparateProcess; use SimpleSAML\{Configuration, Error, Utils}; @@ -446,7 +448,19 @@ public function testCheckURLAllowedWithRegexWithoutDelimiters(): void /** */ + #[DoesNotPerformAssertions] #[RequiresPhpExtension('xdebug')] + public function testXdebugMode(): void + { + if (!in_array('develop', xdebug_info('mode'))) { + $this->markTestSkipped('xdebug.mode != develop'); + } + } + + + /** + */ + #[Depends('testXdebugMode')] #[RunInSeparateProcess] public function testSetCookie(): void { @@ -528,7 +542,7 @@ public function testSetCookieInsecure(): void /** */ - #[RequiresPhpExtension('xdebug')] + #[Depends('testXdebugMode')] #[RunInSeparateProcess] public function testSetCookieSameSite(): void { From 8393cab096cfbdfd7b93aea6bfc57df04510d3c2 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 24 Apr 2025 18:33:12 +0200 Subject: [PATCH 63/93] PHP 8.4 deprecations: Fix implicit nullables --- src/SimpleSAML/Metadata/MetaDataStorageHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SimpleSAML/Metadata/MetaDataStorageHandler.php b/src/SimpleSAML/Metadata/MetaDataStorageHandler.php index dbbe0405d3..af70c63b08 100644 --- a/src/SimpleSAML/Metadata/MetaDataStorageHandler.php +++ b/src/SimpleSAML/Metadata/MetaDataStorageHandler.php @@ -86,7 +86,7 @@ protected function __construct() * @return string|array The auto-generated metadata property. * @throws \Exception If the metadata cannot be generated automatically. */ - public function getGenerated(string $property, string $set, string $overrideHost = null): string|array + public function getGenerated(string $property, string $set, ?string $overrideHost = null): string|array { // first we check if the user has overridden this property in the metadata try { From 486b534b7b9bb6d57d07f7f0748994a325ba0c45 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 24 Apr 2025 18:56:03 +0200 Subject: [PATCH 64/93] Bump negotiate --- docs/simplesamlphp-changelog.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index eb61403033..07a441e17d 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -11,11 +11,16 @@ Released TBD * Downgrade simplesamlphp/composer-module-installer to 1.3.x to keep things working with older (OS-supplied) versions of composer +* Fixed one more PHP 8.4 deprecation notice `metarefresh` * Fixed parsing of large metadata files (v1.2.4) +`negotiate` + +* Fixed logout state reference (v2.3.2) + ## Version 2.3.7 Released 2025-03-11 From 9543a32e9d83e39f2085f8549da8a5db6c52ffa5 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 21 May 2025 10:03:26 +0200 Subject: [PATCH 65/93] Fix metadata generation for indexed endpoints with isDefault set (#2439) * Fix metadata generation for indexed endpoints with isDefault set * Add note to docs --- docs/simplesamlphp-changelog.md | 1 + docs/simplesamlphp-metadata-endpoints.md | 2 ++ src/SimpleSAML/Metadata/SAMLBuilder.php | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 07a441e17d..666ee89806 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -9,6 +9,7 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD +* Fixed a bug where metadata-endpoints with isDefault set would not yield the expected metadata (#2439) * Downgrade simplesamlphp/composer-module-installer to 1.3.x to keep things working with older (OS-supplied) versions of composer * Fixed one more PHP 8.4 deprecation notice diff --git a/docs/simplesamlphp-metadata-endpoints.md b/docs/simplesamlphp-metadata-endpoints.md index bbe191c04d..6c685cf581 100644 --- a/docs/simplesamlphp-metadata-endpoints.md +++ b/docs/simplesamlphp-metadata-endpoints.md @@ -12,6 +12,8 @@ Endpoint | Indexed | Default binding `SingleLogoutService` | N | HTTP-Redirect `SingleSignOnService` | N | HTTP-Redirect +Note that `isDefault` is only available for indexed endpoints. + The various endpoints can be specified in the following format: 'AssertionConsumerService' => [ diff --git a/src/SimpleSAML/Metadata/SAMLBuilder.php b/src/SimpleSAML/Metadata/SAMLBuilder.php index 7e88b1978f..a1a90ba1b1 100644 --- a/src/SimpleSAML/Metadata/SAMLBuilder.php +++ b/src/SimpleSAML/Metadata/SAMLBuilder.php @@ -347,6 +347,11 @@ private static function createEndpoints(array $endpoints, bool $indexed): array foreach ($endpoints as &$ep) { if ($indexed) { $t = new IndexedEndpointType(); + + if (isset($ep['isDefault'])) { + $t->setIsDefault($ep['isDefault']); + } + if (!isset($ep['index'])) { // Find the maximum index $maxIndex = -1; From eeb2a380efc95439d1dba9fb1f0f7ca6112c58ac Mon Sep 17 00:00:00 2001 From: monkeyiq Date: Tue, 3 Jun 2025 19:00:04 +1000 Subject: [PATCH 66/93] The directory being writable is not related to mkdir (#2459) No need to use elseif here, we might as well test for writability all the time. --- src/SimpleSAML/Utils/System.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/SimpleSAML/Utils/System.php b/src/SimpleSAML/Utils/System.php index 0d90b8215f..6a3300910b 100644 --- a/src/SimpleSAML/Utils/System.php +++ b/src/SimpleSAML/Utils/System.php @@ -94,7 +94,9 @@ public function getTempDir(): string (is_array($error) ? $error['message'] : 'no error available'), ); } - } elseif (!is_writable($tempDir)) { + } + + if (!is_writable($tempDir)) { throw new Error\Exception( 'Temporary directory "' . $tempDir . '" cannot be written to by the current user' . From 7f59e22806ca1a1cc60b34e928ffafbb8c266651 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 2 Jun 2025 21:26:24 +0200 Subject: [PATCH 67/93] Fix unauthorized use of cron with default key --- docs/simplesamlphp-changelog.md | 5 ++ modules/cron/src/Controller/Cron.php | 29 +++++-- .../modules/cron/src/Controller/CronTest.php | 80 ++++++++++++++++++- 3 files changed, 105 insertions(+), 9 deletions(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 666ee89806..c69c71306f 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -14,6 +14,11 @@ Released TBD versions of composer * Fixed one more PHP 8.4 deprecation notice +`cron` + +* Fixed a security-issue where cron-jobs could be executed using the default key, + even if a different one was set (#2453) + `metarefresh` * Fixed parsing of large metadata files (v1.2.4) diff --git a/modules/cron/src/Controller/Cron.php b/modules/cron/src/Controller/Cron.php index e23ced10e6..fedcec84cf 100644 --- a/modules/cron/src/Controller/Cron.php +++ b/modules/cron/src/Controller/Cron.php @@ -5,6 +5,7 @@ namespace SimpleSAML\Module\cron\Controller; use PHPMailer\PHPMailer\Exception as PHPMailerException; +use SimpleSAML\Assert\Assert; use SimpleSAML\Configuration; use SimpleSAML\Error; use SimpleSAML\Logger; @@ -116,14 +117,26 @@ public function run(string $tag, string $key, string $output = 'xhtml'): Respons { $configKey = $this->cronconfig->getOptionalString('key', 'secret'); - if ($key === 'secret' || $key === 'RANDOM_KEY') { - // Possible malicious attempt to run cron tasks with default secret - Logger::warning("Cron: Possible malicious attempt to run cron tasks with default secret"); - } elseif ($configKey === 'secret' || $configKey === 'RANDOM_KEY') { - Logger::warning("Cron: no proper key has been configured."); - } elseif ($key !== $configKey) { - throw new Error\Exception('Cron: Wrong key provided. Cron will not run.'); - } + Assert::notInArray( + $key, + ['secret', 'RANDOM_KEY'], + 'Cron: Possible malicious attempt to run cron tasks with default secret', + Error\ConfigurationError::class, + ); + + Assert::notInArray( + $configKey, + ['secret', 'RANDOM_KEY'], + 'Cron: no proper key has been configured.', + Error\ConfigurationError::class, + ); + + Assert::same( + $key, + $configKey, + 'Cron: Wrong key %s provided. Cron will not run.', + Error\Exception::class, + ); $cron = new \SimpleSAML\Module\cron\Cron(); if (!$cron->isValidTag($tag)) { diff --git a/tests/modules/cron/src/Controller/CronTest.php b/tests/modules/cron/src/Controller/CronTest.php index 603ac7da46..6e0e878780 100644 --- a/tests/modules/cron/src/Controller/CronTest.php +++ b/tests/modules/cron/src/Controller/CronTest.php @@ -5,8 +5,10 @@ namespace SimpleSAML\Test\Module\cron\Controller; use PHPUnit\Framework\Attributes\CoversClass; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use SimpleSAML\Configuration; +use SimpleSAML\Error; use SimpleSAML\Module\cron\Controller; use SimpleSAML\Session; use SimpleSAML\Utils; @@ -45,6 +47,7 @@ protected function setUp(): void '[ARRAY]', 'simplesaml', ); + Configuration::setPreLoadedConfig($this->config); $this->session = Session::getSessionFromRequest(); @@ -96,7 +99,7 @@ public function testInfo(): void /** */ - public function testRun(): void + public function testRunCorrectKey(): void { $_SERVER['REQUEST_URI'] = '/module.php/cron/run/daily/verysecret'; @@ -111,4 +114,79 @@ public function testRun(): void $this->assertCount(1, $response->data['summary']); $this->assertEquals('Cron did run tag [daily] at ' . $response->data['time'], $response->data['summary'][0]); } + + + /** + */ + public function testRunWrongKey(): void + { + $_SERVER['REQUEST_URI'] = '/module.php/cron/run/daily/nodice'; + + $c = new Controller\Cron($this->config, $this->session); + + $this->expectException(Error\Exception::class); + $this->expectExceptionMessage('Cron: Wrong key "nodice" provided. Cron will not run.'); + + $c->run('daily', 'nodice'); + } + + + /** + */ + #[DataProvider('provideDefaultSecret')] + public function testRunDefaultSecret(string $secret): void + { + $_SERVER['REQUEST_URI'] = '/module.php/cron/run/daily/' . $secret; + + $c = new Controller\Cron($this->config, $this->session); + + $this->expectException(Error\ConfigurationError::class); + $this->expectExceptionMessage('Cron: Possible malicious attempt to run cron tasks with default secret'); + + $c->run('daily', $secret); + } + + + /** + */ + #[DataProvider('provideDefaultSecret')] + public function testRunDefaultConfigSecret(string $configKey): void + { + Configuration::setPreLoadedConfig( + Configuration::loadFromArray( + [ + 'key' => $configKey, + 'allowed_tags' => ['daily'], + 'sendemail' => false, + ], + '[ARRAY]', + 'simplesaml', + ), + 'module_cron.php', + 'simplesaml', + ); + + $_SERVER['REQUEST_URI'] = '/module.php/cron/run/daily/verysecret'; + + $c = new Controller\Cron($this->config, $this->session); + + $this->expectException(Error\ConfigurationError::class); + $this->expectExceptionMessage('Cron: no proper key has been configured.'); + + $c->run('daily', 'verysecret'); + } + + + /** + * @return array + */ + public static function provideDefaultSecret(): array + { + return [ + // Config template + ['secret'], + // Documentation inside several modules + ['RANDOM_KEY'], + ]; + } } From 8b81dc3d35703d11f617e752858ee5a340cdc4ef Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Fri, 13 Jun 2025 14:45:53 +0200 Subject: [PATCH 68/93] Fix markdown --- docs/simplesamlphp-nostate.md | 2 +- docs/simplesamlphp-reference-idp-hosted.md | 2 +- docs/simplesamlphp-reference-idp-remote.md | 2 +- docs/simplesamlphp-reference-sp-remote.md | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/simplesamlphp-nostate.md b/docs/simplesamlphp-nostate.md index c7315ac3a0..882d0ac4f5 100644 --- a/docs/simplesamlphp-nostate.md +++ b/docs/simplesamlphp-nostate.md @@ -36,7 +36,7 @@ The domain name the IdP sends the response to is configured in the metadata of the IdP. This means that it may not match up with the domain name the user accessed. For example we may have the following scenario: -1. The user accesses `https://www.example.org/`. A session is created for the user, and the session cookie is set for the current domain (www.example.org). +1. The user accesses `https://www.example.org/`. A session is created for the user, and the session cookie is set for the current domain (`www.example.org`). 1. The user needs to be authenticated. We therefore save some information about the current status in the state array, create a SAML 2.0 authentication request, and send it to the IdP. 1. The user logs in on the IdP. The IdP then sends a response to the SP at `example.org`. However, the metadata for the SP that is registered at the IdP uses `https://example.org/` (without `www`) as the domain the response should be sent to. The authentication response is therefore sent to that domain. 1. The SP (now at `https://example.org/`) tries to load the state information associated with the authentication response it received. But, because the domain name has changed, we do not receive the session cookie of the user. We are therefore unable to find the session of the user. When we attempt to load the state information from the session we are therefore unable to find it. diff --git a/docs/simplesamlphp-reference-idp-hosted.md b/docs/simplesamlphp-reference-idp-hosted.md index cfe494cfc5..1ed924c22d 100644 --- a/docs/simplesamlphp-reference-idp-hosted.md +++ b/docs/simplesamlphp-reference-idp-hosted.md @@ -194,7 +194,7 @@ The following SAML 2.0 options are available: : The RSA encryption algorithm with PKCS#1 v1.5 padding is blacklisted by default for security reasons. Any assertions encrypted with this algorithm will therefore fail to decrypt. You can override this limitation by defining an empty array in this option (or blacklisting any other algorithms not including that one). However, it is strongly - discouraged to do so. For your own safety, please include the string 'http://www.w3.org/2001/04/xmlenc#rsa-1_5' if + discouraged to do so. For your own safety, please include the string `http://www.w3.org/2001/04/xmlenc#rsa-1_5` if you make use of this option. `https.certificate` diff --git a/docs/simplesamlphp-reference-idp-remote.md b/docs/simplesamlphp-reference-idp-remote.md index 91a714a432..daafdb0af7 100644 --- a/docs/simplesamlphp-reference-idp-remote.md +++ b/docs/simplesamlphp-reference-idp-remote.md @@ -74,7 +74,7 @@ $metadata['entity-id-2'] = [ : The RSA encryption algorithm with PKCS#1 v1.5 padding is blacklisted by default for security reasons. Any assertions encrypted with this algorithm will therefore fail to decrypt. You can override this limitation by defining an empty array in this option (or blacklisting any other algorithms not including that one). However, it is strongly - discouraged to do so. For your own safety, please include the string 'http://www.w3.org/2001/04/xmlenc#rsa-1_5' if + discouraged to do so. For your own safety, please include the string `http://www.w3.org/2001/04/xmlenc#rsa-1_5` if you make use of this option. `hide.from.discovery` diff --git a/docs/simplesamlphp-reference-sp-remote.md b/docs/simplesamlphp-reference-sp-remote.md index 77e353f0e0..f032d20c30 100644 --- a/docs/simplesamlphp-reference-sp-remote.md +++ b/docs/simplesamlphp-reference-sp-remote.md @@ -153,7 +153,7 @@ The following options can be set: : The RSA encryption algorithm with PKCS#1 v1.5 padding is blacklisted by default for security reasons. Any assertions encrypted with this algorithm will therefore fail to decrypt. You can override this limitation by defining an empty array in this option (or blacklisting any other algorithms not including that one). However, it is strongly - discouraged to do so. For your own safety, please include the string 'http://www.w3.org/2001/04/xmlenc#rsa-1_5' if + discouraged to do so. For your own safety, please include the string `http://www.w3.org/2001/04/xmlenc#rsa-1_5` if you make use of this option. `ForceAuthn` @@ -166,7 +166,7 @@ The following options can be set: : The three most commonly used values are: -: +: 1. `urn:oasis:names:tc:SAML:2.0:nameid-format:transient` 2. `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` 3. `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` From 50a478c43fb368cc849cde53535977f4631d08ba Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 16 Jun 2025 10:00:12 +0200 Subject: [PATCH 69/93] Bump dependencies --- composer.lock | 509 +++++++++++++++++++++++--------------------------- 1 file changed, 238 insertions(+), 271 deletions(-) diff --git a/composer.lock b/composer.lock index a9ed7c23b9..e35b2d58e8 100644 --- a/composer.lock +++ b/composer.lock @@ -347,16 +347,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.9.3", + "version": "v6.10.0", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "2f5c94fe7493efc213f643c23b1b1c249d40f47e" + "reference": "bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2f5c94fe7493efc213f643c23b1b1c249d40f47e", - "reference": "2f5c94fe7493efc213f643c23b1b1c249d40f47e", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144", + "reference": "bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144", "shasum": "" }, "require": { @@ -416,7 +416,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.3" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.10.0" }, "funding": [ { @@ -424,7 +424,7 @@ "type": "github" } ], - "time": "2024-11-24T18:04:13+00:00" + "time": "2025-04-24T15:19:31+00:00" }, { "name": "psr/cache", @@ -924,48 +924,6 @@ }, "time": "2025-03-19T20:38:37+00:00" }, - { - "name": "simplesamlphp/composer-xmlprovider-installer", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/simplesamlphp/composer-xmlprovider-installer.git", - "reference": "ce09a877a1de9469f1a872f04703d75d6bafcdc6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/composer-xmlprovider-installer/zipball/ce09a877a1de9469f1a872f04703d75d6bafcdc6", - "reference": "ce09a877a1de9469f1a872f04703d75d6bafcdc6", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.0", - "php": "^8.1" - }, - "require-dev": { - "composer/composer": "^2.4", - "simplesamlphp/simplesamlphp-test-framework": "^1.5.4" - }, - "type": "composer-plugin", - "extra": { - "class": "SimpleSAML\\Composer\\XMLProvider\\XMLProviderInstallerPlugin" - }, - "autoload": { - "psr-4": { - "SimpleSAML\\Composer\\XMLProvider\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-only" - ], - "description": "A composer plugin that will auto-generate a classmap with all classes that implement SerializableElementInterface.", - "support": { - "issues": "https://github.com/simplesamlphp/composer-xmlprovider-installer/issues", - "source": "https://github.com/simplesamlphp/composer-xmlprovider-installer/tree/v1.0.1" - }, - "time": "2024-09-15T22:34:50+00:00" - }, { "name": "simplesamlphp/saml2", "version": "v4.18.1", @@ -1065,16 +1023,16 @@ }, { "name": "simplesamlphp/xml-common", - "version": "v1.24.2", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-common.git", - "reference": "0521d7fa82ded0be994cf42e0365a4ac53c95789" + "reference": "2250c05aa0062bba4baad9d2357e94f9aa10ffc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/0521d7fa82ded0be994cf42e0365a4ac53c95789", - "reference": "0521d7fa82ded0be994cf42e0365a4ac53c95789", + "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/2250c05aa0062bba4baad9d2357e94f9aa10ffc0", + "reference": "2250c05aa0062bba4baad9d2357e94f9aa10ffc0", "shasum": "" }, "require": { @@ -1085,12 +1043,11 @@ "ext-pcre": "*", "ext-spl": "*", "php": "^8.1", - "simplesamlphp/assert": "~1.8.0", - "simplesamlphp/composer-xmlprovider-installer": "~1.0.0", - "symfony/finder": "^6.4" + "simplesamlphp/assert": "~1.8.1", + "symfony/finder": "~6.4.0" }, "require-dev": { - "simplesamlphp/simplesamlphp-test-framework": "^1.7" + "simplesamlphp/simplesamlphp-test-framework": "~1.9.2" }, "type": "simplesamlphp-xmlprovider", "autoload": { @@ -1122,20 +1079,20 @@ "issues": "https://github.com/simplesamlphp/xml-common/issues", "source": "https://github.com/simplesamlphp/xml-common" }, - "time": "2025-01-12T10:33:16+00:00" + "time": "2025-06-02T21:40:38+00:00" }, { "name": "simplesamlphp/xml-security", - "version": "v1.13.0", + "version": "v1.13.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "ae601fb4398b533a2ba48e2c44fd972e2f20b474" + "reference": "a7f2e09632da1179ecb9a021c3c2fbcbcd28071a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/ae601fb4398b533a2ba48e2c44fd972e2f20b474", - "reference": "ae601fb4398b533a2ba48e2c44fd972e2f20b474", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/a7f2e09632da1179ecb9a021c3c2fbcbcd28071a", + "reference": "a7f2e09632da1179ecb9a021c3c2fbcbcd28071a", "shasum": "" }, "require": { @@ -1146,11 +1103,11 @@ "ext-pcre": "*", "ext-spl": "*", "php": "^8.1", - "simplesamlphp/assert": "~1.8.0", - "simplesamlphp/xml-common": "~1.24.0" + "simplesamlphp/assert": "~1.8.1", + "simplesamlphp/xml-common": "~1.25.0" }, "require-dev": { - "simplesamlphp/simplesamlphp-test-framework": "~1.8.0" + "simplesamlphp/simplesamlphp-test-framework": "~1.9.2" }, "type": "simplesamlphp-xmlprovider", "autoload": { @@ -1184,22 +1141,22 @@ ], "support": { "issues": "https://github.com/simplesamlphp/xml-security/issues", - "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.0" + "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.2" }, - "time": "2025-01-08T22:58:06+00:00" + "time": "2025-06-04T21:49:04+00:00" }, { "name": "symfony/cache", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432" + "reference": "d1abcf763a7414f2e572f676f22da7a06c8cd9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432", - "reference": "95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432", + "url": "https://api.github.com/repos/symfony/cache/zipball/d1abcf763a7414f2e572f676f22da7a06c8cd9ee", + "reference": "d1abcf763a7414f2e572f676f22da7a06c8cd9ee", "shasum": "" }, "require": { @@ -1266,7 +1223,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.20" + "source": "https://github.com/symfony/cache/tree/v6.4.21" }, "funding": [ { @@ -1282,20 +1239,20 @@ "type": "tidelift" } ], - "time": "2025-03-08T15:51:34+00:00" + "time": "2025-04-08T08:21:20+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b" + "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b", - "reference": "15a4f8e5cd3bce9aeafc882b1acab39ec8de2c1b", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868", + "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868", "shasum": "" }, "require": { @@ -1309,7 +1266,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -1342,7 +1299,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/cache-contracts/tree/v3.6.0" }, "funding": [ { @@ -1358,20 +1315,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2025-03-13T15:25:07+00:00" }, { "name": "symfony/config", - "version": "v6.4.14", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef" + "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/4e55e7e4ffddd343671ea972216d4509f46c22ef", - "reference": "4e55e7e4ffddd343671ea972216d4509f46c22ef", + "url": "https://api.github.com/repos/symfony/config/zipball/af5917a3b1571f54689e56677a3f06440d2fe4c7", + "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7", "shasum": "" }, "require": { @@ -1417,7 +1374,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.14" + "source": "https://github.com/symfony/config/tree/v6.4.22" }, "funding": [ { @@ -1433,20 +1390,20 @@ "type": "tidelift" } ], - "time": "2024-11-04T11:33:53+00:00" + "time": "2025-05-14T06:00:01+00:00" }, { "name": "symfony/console", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36" + "reference": "7d29659bc3c9d8e9a34e2c3414ef9e9e003e6cf3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2e4af9c952617cc3f9559ff706aee420a8464c36", - "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36", + "url": "https://api.github.com/repos/symfony/console/zipball/7d29659bc3c9d8e9a34e2c3414ef9e9e003e6cf3", + "reference": "7d29659bc3c9d8e9a34e2c3414ef9e9e003e6cf3", "shasum": "" }, "require": { @@ -1511,7 +1468,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.20" + "source": "https://github.com/symfony/console/tree/v6.4.22" }, "funding": [ { @@ -1527,20 +1484,20 @@ "type": "tidelift" } ], - "time": "2025-03-03T17:16:38+00:00" + "time": "2025-05-07T07:05:04+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "c49796a9184a532843e78e50df9e55708b92543a" + "reference": "8cb11f833d1f5bfbb2df97dfc23c92b4d42c18d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c49796a9184a532843e78e50df9e55708b92543a", - "reference": "c49796a9184a532843e78e50df9e55708b92543a", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8cb11f833d1f5bfbb2df97dfc23c92b4d42c18d9", + "reference": "8cb11f833d1f5bfbb2df97dfc23c92b4d42c18d9", "shasum": "" }, "require": { @@ -1592,7 +1549,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.20" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.22" }, "funding": [ { @@ -1608,20 +1565,20 @@ "type": "tidelift" } ], - "time": "2025-03-13T09:55:08+00:00" + "time": "2025-05-17T07:35:26+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", - "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", "shasum": "" }, "require": { @@ -1634,7 +1591,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -1659,7 +1616,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" }, "funding": [ { @@ -1675,20 +1632,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031" + "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/aa3bcf4f7674719df078e61cc8062e5b7f752031", - "reference": "aa3bcf4f7674719df078e61cc8062e5b7f752031", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/ce765a2d28b3cce61de1fb916e207767a73171d1", + "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1", "shasum": "" }, "require": { @@ -1734,7 +1691,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.20" + "source": "https://github.com/symfony/error-handler/tree/v6.4.22" }, "funding": [ { @@ -1750,7 +1707,7 @@ "type": "tidelift" } ], - "time": "2025-03-01T13:00:38+00:00" + "time": "2025-05-28T12:00:15+00:00" }, { "name": "symfony/event-dispatcher", @@ -1834,16 +1791,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", - "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", "shasum": "" }, "require": { @@ -1857,7 +1814,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -1890,7 +1847,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" }, "funding": [ { @@ -1906,7 +1863,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/filesystem", @@ -2040,16 +1997,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce" + "reference": "b1de19b2083484d0ce945977f6c6484e9e493a2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce", - "reference": "51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/b1de19b2083484d0ce945977f6c6484e9e493a2e", + "reference": "b1de19b2083484d0ce945977f6c6484e9e493a2e", "shasum": "" }, "require": { @@ -2169,7 +2126,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.20" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.22" }, "funding": [ { @@ -2185,20 +2142,20 @@ "type": "tidelift" } ], - "time": "2025-03-23T16:46:24+00:00" + "time": "2025-05-14T07:14:36+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.18", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db" + "reference": "6b7c97fe1ddac8df3cc9ba6410c8abc683e148ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0492d6217e5ab48f51fca76f64cf8e78919d0db", - "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6b7c97fe1ddac8df3cc9ba6410c8abc683e148ae", + "reference": "6b7c97fe1ddac8df3cc9ba6410c8abc683e148ae", "shasum": "" }, "require": { @@ -2246,7 +2203,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.18" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.22" }, "funding": [ { @@ -2262,20 +2219,20 @@ "type": "tidelift" } ], - "time": "2025-01-09T15:48:56+00:00" + "time": "2025-05-11T15:36:20+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37" + "reference": "15c105b839a7cfa1bc0989c091bfb6477f23b673" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6be6db31bc74693ce5516e1fd5e5ff1171005e37", - "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/15c105b839a7cfa1bc0989c091bfb6477f23b673", + "reference": "15c105b839a7cfa1bc0989c091bfb6477f23b673", "shasum": "" }, "require": { @@ -2360,7 +2317,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.20" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.22" }, "funding": [ { @@ -2376,20 +2333,20 @@ "type": "tidelift" } ], - "time": "2025-03-28T13:27:10+00:00" + "time": "2025-05-29T07:23:40+00:00" }, { "name": "symfony/intl", - "version": "v6.4.15", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6" + "reference": "aaecb52f18a6f95766a239ca0a6cc0df983d92cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/b1d5e8d82615b60f229216edfee0b59e2ef66da6", - "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6", + "url": "https://api.github.com/repos/symfony/intl/zipball/aaecb52f18a6f95766a239ca0a6cc0df983d92cc", + "reference": "aaecb52f18a6f95766a239ca0a6cc0df983d92cc", "shasum": "" }, "require": { @@ -2443,7 +2400,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.15" + "source": "https://github.com/symfony/intl/tree/v6.4.22" }, "funding": [ { @@ -2459,7 +2416,7 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:28:48+00:00" + "time": "2025-05-04T12:02:38+00:00" }, { "name": "symfony/password-hasher", @@ -2535,7 +2492,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2594,7 +2551,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" }, "funding": [ { @@ -2614,7 +2571,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -2672,7 +2629,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" }, "funding": [ { @@ -2692,16 +2649,16 @@ }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78" + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/763d2a91fea5681509ca01acbc1c5e450d127811", + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811", "shasum": "" }, "require": { @@ -2756,7 +2713,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.32.0" }, "funding": [ { @@ -2772,11 +2729,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-21T18:38:29+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2837,7 +2794,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" }, "funding": [ { @@ -2857,19 +2814,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -2917,7 +2875,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" }, "funding": [ { @@ -2933,11 +2891,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", @@ -2993,7 +2951,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" }, "funding": [ { @@ -3013,16 +2971,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.18", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68" + "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e9bfc94953019089acdfb9be51c1b9142c4afa68", - "reference": "e9bfc94953019089acdfb9be51c1b9142c4afa68", + "url": "https://api.github.com/repos/symfony/routing/zipball/1f5234e8457164a3a0038a4c0a4ba27876a9c670", + "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670", "shasum": "" }, "require": { @@ -3076,7 +3034,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.18" + "source": "https://github.com/symfony/routing/tree/v6.4.22" }, "funding": [ { @@ -3092,20 +3050,20 @@ "type": "tidelift" } ], - "time": "2025-01-09T08:51:02+00:00" + "time": "2025-04-27T16:08:38+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", - "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", "shasum": "" }, "require": { @@ -3123,7 +3081,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -3159,7 +3117,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" }, "funding": [ { @@ -3175,20 +3133,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2025-04-25T09:37:31+00:00" }, { "name": "symfony/string", - "version": "v6.4.15", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", "shasum": "" }, "require": { @@ -3245,7 +3203,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.15" + "source": "https://github.com/symfony/string/tree/v6.4.21" }, "funding": [ { @@ -3261,20 +3219,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:31:12+00:00" + "time": "2025-04-18T15:23:29+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.5.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", - "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", "shasum": "" }, "require": { @@ -3287,7 +3245,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.5-dev" + "dev-main": "3.6-dev" } }, "autoload": { @@ -3323,7 +3281,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" }, "funding": [ { @@ -3339,20 +3297,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-09-27T08:32:26+00:00" }, { "name": "symfony/twig-bridge", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "bb423dfaa51b6d88b1d64197ae695a0c8ac73778" + "reference": "04ab306a2f2c9dbd46f4363383812954f704af9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/bb423dfaa51b6d88b1d64197ae695a0c8ac73778", - "reference": "bb423dfaa51b6d88b1d64197ae695a0c8ac73778", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/04ab306a2f2c9dbd46f4363383812954f704af9d", + "reference": "04ab306a2f2c9dbd46f4363383812954f704af9d", "shasum": "" }, "require": { @@ -3432,7 +3390,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.20" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.22" }, "funding": [ { @@ -3448,20 +3406,20 @@ "type": "tidelift" } ], - "time": "2025-03-28T13:08:36+00:00" + "time": "2025-05-16T08:23:44+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.18", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", "shasum": "" }, "require": { @@ -3517,7 +3475,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.21" }, "funding": [ { @@ -3533,20 +3491,20 @@ "type": "tidelift" } ], - "time": "2025-01-17T11:26:11+00:00" + "time": "2025-04-09T07:34:50+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.20", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2" + "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/998df255e9e6a15a36ae35e9c6cd818c17cf92a2", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f28cf841f5654955c9f88ceaf4b9dc29571988a9", + "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9", "shasum": "" }, "require": { @@ -3594,7 +3552,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.20" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.22" }, "funding": [ { @@ -3610,20 +3568,20 @@ "type": "tidelift" } ], - "time": "2025-03-13T09:55:08+00:00" + "time": "2025-05-14T13:00:13+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f" + "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/28ee818fce4a73ac1474346b94e4b966f665c53f", - "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f01987f45676778b474468aa266fe2eda1f2bc7e", + "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e", "shasum": "" }, "require": { @@ -3666,7 +3624,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.20" + "source": "https://github.com/symfony/yaml/tree/v6.4.21" }, "funding": [ { @@ -3682,11 +3640,11 @@ "type": "tidelift" } ], - "time": "2025-02-27T20:15:30+00:00" + "time": "2025-04-04T09:48:44+00:00" }, { "name": "twig/intl-extra", - "version": "v3.20.0", + "version": "v3.21.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", @@ -3734,7 +3692,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.20.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.21.0" }, "funding": [ { @@ -3750,16 +3708,16 @@ }, { "name": "twig/twig", - "version": "v3.20.0", + "version": "v3.21.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "3468920399451a384bef53cf7996965f7cd40183" + "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3468920399451a384bef53cf7996965f7cd40183", - "reference": "3468920399451a384bef53cf7996965f7cd40183", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/285123877d4dd97dd7c11842ac5fb7e86e60d81d", + "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d", "shasum": "" }, "require": { @@ -3813,7 +3771,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.20.0" + "source": "https://github.com/twigphp/Twig/tree/v3.21.1" }, "funding": [ { @@ -3825,7 +3783,7 @@ "type": "tidelift" } ], - "time": "2025-02-13T08:34:43+00:00" + "time": "2025-05-03T07:21:55+00:00" }, { "name": "webmozart/assert", @@ -4078,16 +4036,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.0", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414" + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c", + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c", "shasum": "" }, "require": { @@ -4126,7 +4084,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1" }, "funding": [ { @@ -4134,7 +4092,7 @@ "type": "tidelift" } ], - "time": "2025-02-12T12:17:51+00:00" + "time": "2025-04-29T12:36:36+00:00" }, { "name": "nikic/php-parser", @@ -4407,16 +4365,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.23", + "version": "1.12.27", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "29201e7a743a6ab36f91394eab51889a82631428" + "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/29201e7a743a6ab36f91394eab51889a82631428", - "reference": "29201e7a743a6ab36f91394eab51889a82631428", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3a6e423c076ab39dfedc307e2ac627ef579db162", + "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162", "shasum": "" }, "require": { @@ -4461,7 +4419,7 @@ "type": "github" } ], - "time": "2025-03-23T14:57:32+00:00" + "time": "2025-05-21T20:51:45+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -4836,16 +4794,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.45", + "version": "10.5.46", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8" + "reference": "8080be387a5be380dda48c6f41cee4a13aadab3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bd68a781d8e30348bc297449f5234b3458267ae8", - "reference": "bd68a781d8e30348bc297449f5234b3458267ae8", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8080be387a5be380dda48c6f41cee4a13aadab3d", + "reference": "8080be387a5be380dda48c6f41cee4a13aadab3d", "shasum": "" }, "require": { @@ -4855,7 +4813,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.12.1", + "myclabs/deep-copy": "^1.13.1", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.1", @@ -4917,7 +4875,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.45" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.46" }, "funding": [ { @@ -4928,25 +4886,33 @@ "url": "https://github.com/sebastianbergmann", "type": "github" }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "type": "tidelift" } ], - "time": "2025-02-06T16:08:12+00:00" + "time": "2025-05-02T06:46:24+00:00" }, { "name": "predis/predis", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9" + "reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/bac46bfdb78cd6e9c7926c697012aae740cb9ec9", - "reference": "bac46bfdb78cd6e9c7926c697012aae740cb9ec9", + "url": "https://api.github.com/repos/predis/predis/zipball/f49e13ee3a2a825631562aa0223ac922ec5d058b", + "reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b", "shasum": "" }, "require": { @@ -4955,6 +4921,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.3", "phpstan/phpstan": "^1.9", + "phpunit/phpcov": "^6.0 || ^8.0", "phpunit/phpunit": "^8.0 || ^9.4" }, "suggest": { @@ -4977,7 +4944,7 @@ "role": "Maintainer" } ], - "description": "A flexible and feature-complete Redis client for PHP.", + "description": "A flexible and feature-complete Redis/Valkey client for PHP.", "homepage": "http://github.com/predis/predis", "keywords": [ "nosql", @@ -4986,7 +4953,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v2.3.0" + "source": "https://github.com/predis/predis/tree/v2.4.0" }, "funding": [ { @@ -4994,7 +4961,7 @@ "type": "github" } ], - "time": "2024-11-21T20:00:02+00:00" + "time": "2025-04-30T15:16:02+00:00" }, { "name": "sebastian/cli-parser", @@ -6088,32 +6055,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.16.2", + "version": "8.19.1", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "8bf0408a9cf30687d87957d364de9a3d5d00d948" + "reference": "458d665acd49009efebd7e0cb385d71ae9ac3220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/8bf0408a9cf30687d87957d364de9a3d5d00d948", - "reference": "8bf0408a9cf30687d87957d364de9a3d5d00d948", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/458d665acd49009efebd7e0cb385d71ae9ac3220", + "reference": "458d665acd49009efebd7e0cb385d71ae9ac3220", "shasum": "" }, "require": { "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", "php": "^7.4 || ^8.0", "phpstan/phpdoc-parser": "^2.1.0", - "squizlabs/php_codesniffer": "^3.11.3" + "squizlabs/php_codesniffer": "^3.13.0" }, "require-dev": { "phing/phing": "3.0.1", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.11", - "phpstan/phpstan-deprecation-rules": "2.0.1", + "phpstan/phpstan": "2.1.17", + "phpstan/phpstan-deprecation-rules": "2.0.3", "phpstan/phpstan-phpunit": "2.0.6", "phpstan/phpstan-strict-rules": "2.0.4", - "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.15|12.0.10" + "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.21|12.1.3" }, "type": "phpcodesniffer-standard", "extra": { @@ -6137,7 +6104,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.16.2" + "source": "https://github.com/slevomat/coding-standard/tree/8.19.1" }, "funding": [ { @@ -6149,20 +6116,20 @@ "type": "tidelift" } ], - "time": "2025-03-27T19:37:58+00:00" + "time": "2025-06-09T17:53:57+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.12.1", + "version": "3.13.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd" + "reference": "1b71b4dd7e7ef651ac749cea67e513c0c832f4bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ea16a1f3719783345febd3aab41beb55c8c84bfd", - "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/1b71b4dd7e7ef651ac749cea67e513c0c832f4bd", + "reference": "1b71b4dd7e7ef651ac749cea67e513c0c832f4bd", "shasum": "" }, "require": { @@ -6233,20 +6200,20 @@ "type": "thanks_dev" } ], - "time": "2025-04-04T12:57:55+00:00" + "time": "2025-06-12T15:04:34+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v7.2.0", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145" + "reference": "2eabda563921f21cbce1d1e3247b3c36568905e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2bbde92ab25a0e2c88160857af7be9db5da0d145", - "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2eabda563921f21cbce1d1e3247b3c36568905e6", + "reference": "2eabda563921f21cbce1d1e3247b3c36568905e6", "shasum": "" }, "require": { @@ -6299,7 +6266,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.2.0" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.3.0" }, "funding": [ { @@ -6315,20 +6282,20 @@ "type": "tidelift" } ], - "time": "2024-11-13T16:15:23+00:00" + "time": "2025-05-23T07:26:30+00:00" }, { "name": "symfony/translation", - "version": "v6.4.19", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e" + "reference": "7e3b3b7146c6fab36ddff304a8041174bf6e17ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3b9bf9f33997c064885a7bfc126c14b9daa0e00e", - "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e", + "url": "https://api.github.com/repos/symfony/translation/zipball/7e3b3b7146c6fab36ddff304a8041174bf6e17ad", + "reference": "7e3b3b7146c6fab36ddff304a8041174bf6e17ad", "shasum": "" }, "require": { @@ -6394,7 +6361,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.19" + "source": "https://github.com/symfony/translation/tree/v6.4.22" }, "funding": [ { @@ -6410,7 +6377,7 @@ "type": "tidelift" } ], - "time": "2025-02-13T10:18:43+00:00" + "time": "2025-05-29T07:06:44+00:00" }, { "name": "theseer/tokenizer", From 187b70cb5d8d380d8d3b72e6b984acec49205447 Mon Sep 17 00:00:00 2001 From: Ben Martin Date: Tue, 17 Jun 2025 13:56:08 +1000 Subject: [PATCH 70/93] Setting version number to v2.3.8 --- composer.json | 2 +- composer.lock | 100 ++++++++++++++++--------------- docs/simplesamlphp-changelog.md | 7 ++- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 5 files changed, 60 insertions(+), 53 deletions(-) diff --git a/composer.json b/composer.json index 2018d47a41..dd6959df8f 100644 --- a/composer.json +++ b/composer.json @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.7" + "version": "v2.3.8" } diff --git a/composer.lock b/composer.lock index e35b2d58e8..303f6459e5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "af6f31e28c17f58b6b0239d1ca7eac89", + "content-hash": "d5a4c080ba45815db6d946b9838add1d", "packages": [ { "name": "gettext/gettext", @@ -1636,31 +1636,33 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.22", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1" + "reference": "cf68d225bc43629de4ff54778029aee6dc191b83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/ce765a2d28b3cce61de1fb916e207767a73171d1", - "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/cf68d225bc43629de4ff54778029aee6dc191b83", + "reference": "cf68d225bc43629de4ff54778029aee6dc191b83", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^5.4|^6.0|^7.0" + "symfony/var-dumper": "^6.4|^7.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", "symfony/http-kernel": "<6.4" }, "require-dev": { + "symfony/console": "^6.4|^7.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^5.4|^6.0|^7.0" + "symfony/serializer": "^6.4|^7.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -1691,7 +1693,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.22" + "source": "https://github.com/symfony/error-handler/tree/v7.3.0" }, "funding": [ { @@ -1707,28 +1709,28 @@ "type": "tidelift" } ], - "time": "2025-05-28T12:00:15+00:00" + "time": "2025-05-29T07:19:49+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.13", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" + "reference": "497f73ac996a598c92409b44ac43b6690c4f666d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d", + "reference": "497f73ac996a598c92409b44ac43b6690c4f666d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<5.4", + "symfony/dependency-injection": "<6.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -1737,13 +1739,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -1771,7 +1773,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/v6.4.13" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.0" }, "funding": [ { @@ -1787,7 +1789,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-04-22T09:11:45+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3137,20 +3139,20 @@ }, { "name": "symfony/string", - "version": "v6.4.21", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" + "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", + "url": "https://api.github.com/repos/symfony/string/zipball/f3570b8c61ca887a9e2938e85cb6458515d2b125", + "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -3160,11 +3162,12 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", + "symfony/emoji": "^7.1", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" + "symfony/var-exporter": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -3203,7 +3206,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.21" + "source": "https://github.com/symfony/string/tree/v7.3.0" }, "funding": [ { @@ -3219,7 +3222,7 @@ "type": "tidelift" } ], - "time": "2025-04-18T15:23:29+00:00" + "time": "2025-04-20T20:19:01+00:00" }, { "name": "symfony/translation-contracts", @@ -3410,34 +3413,33 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.21", + "version": "v7.3.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5" + "reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", - "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/548f6760c54197b1084e1e5c71f6d9d523f2f78e", + "reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^5.4|^6.0|^7.0", - "symfony/error-handler": "^6.3|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/uid": "^5.4|^6.0|^7.0", - "twig/twig": "^2.13|^3.0.4" + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.12" }, "bin": [ "Resources/bin/var-dump-server" @@ -3475,7 +3477,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.21" + "source": "https://github.com/symfony/var-dumper/tree/v7.3.0" }, "funding": [ { @@ -3491,7 +3493,7 @@ "type": "tidelift" } ], - "time": "2025-04-09T07:34:50+00:00" + "time": "2025-04-27T18:39:23+00:00" }, { "name": "symfony/var-exporter", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index c69c71306f..413f76fc69 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,10 +5,15 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.8 +## Version 2.3.9 Released TBD + +## Version 2.3.8 + +Released 2025-06-17 + * Fixed a bug where metadata-endpoints with isDefault set would not yield the expected metadata (#2439) * Downgrade simplesamlphp/composer-module-installer to 1.3.x to keep things working with older (OS-supplied) versions of composer diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index 4a21439e0a..69e010555b 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.7 +%define version 2.3.8 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 5047d71258..0158c319e8 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.7'; + public const VERSION = '2.3.8'; /** * A default value which means that the given option is required. From 4e70a792b695aff7f9523b17907af357025a0e2d Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 17 Jun 2025 07:42:45 +0200 Subject: [PATCH 71/93] Update lock-file --- composer.lock | 98 +++++++++++++++++++++++++-------------------------- 1 file changed, 48 insertions(+), 50 deletions(-) diff --git a/composer.lock b/composer.lock index 303f6459e5..beff2e3f01 100644 --- a/composer.lock +++ b/composer.lock @@ -1636,33 +1636,31 @@ }, { "name": "symfony/error-handler", - "version": "v7.3.0", + "version": "v6.4.22", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "cf68d225bc43629de4ff54778029aee6dc191b83" + "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/cf68d225bc43629de4ff54778029aee6dc191b83", - "reference": "cf68d225bc43629de4ff54778029aee6dc191b83", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/ce765a2d28b3cce61de1fb916e207767a73171d1", + "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", "symfony/http-kernel": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/webpack-encore-bundle": "^1.0|^2.0" + "symfony/serializer": "^5.4|^6.0|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -1693,7 +1691,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.3.0" + "source": "https://github.com/symfony/error-handler/tree/v6.4.22" }, "funding": [ { @@ -1709,28 +1707,28 @@ "type": "tidelift" } ], - "time": "2025-05-29T07:19:49+00:00" + "time": "2025-05-28T12:00:15+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.0", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d" + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<6.4", + "symfony/dependency-injection": "<5.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -1739,13 +1737,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -1773,7 +1771,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/v7.3.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.13" }, "funding": [ { @@ -1789,7 +1787,7 @@ "type": "tidelift" } ], - "time": "2025-04-22T09:11:45+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3139,20 +3137,20 @@ }, { "name": "symfony/string", - "version": "v7.3.0", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125" + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f3570b8c61ca887a9e2938e85cb6458515d2b125", - "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125", + "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", @@ -3162,12 +3160,11 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -3206,7 +3203,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.0" + "source": "https://github.com/symfony/string/tree/v6.4.21" }, "funding": [ { @@ -3222,7 +3219,7 @@ "type": "tidelift" } ], - "time": "2025-04-20T20:19:01+00:00" + "time": "2025-04-18T15:23:29+00:00" }, { "name": "symfony/translation-contracts", @@ -3413,33 +3410,34 @@ }, { "name": "symfony/var-dumper", - "version": "v7.3.0", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e" + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/548f6760c54197b1084e1e5c71f6d9d523f2f78e", - "reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<5.4" }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/uid": "^6.4|^7.0", - "twig/twig": "^3.12" + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/error-handler": "^6.3|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/uid": "^5.4|^6.0|^7.0", + "twig/twig": "^2.13|^3.0.4" }, "bin": [ "Resources/bin/var-dump-server" @@ -3477,7 +3475,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.3.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.21" }, "funding": [ { @@ -3493,7 +3491,7 @@ "type": "tidelift" } ], - "time": "2025-04-27T18:39:23+00:00" + "time": "2025-04-09T07:34:50+00:00" }, { "name": "symfony/var-exporter", From 926852cfe66378bfba7f70297304222f22bb2f12 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 17 Jun 2025 07:45:19 +0200 Subject: [PATCH 72/93] Run unit tests on PHP 8.4 --- .github/workflows/php.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 08ff0acd0e..51764f4b84 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -44,7 +44,7 @@ jobs: fail-fast: false matrix: operating-system: [ubuntu-latest] - php-versions: ['8.1', '8.2', '8.3'] + php-versions: ['8.1', '8.2', '8.3', '8.4'] steps: - name: Setup PHP, with composer and extensions @@ -112,7 +112,7 @@ jobs: fail-fast: true matrix: operating-system: [windows-latest] - php-versions: ['8.1', '8.2', '8.3'] + php-versions: ['8.1', '8.2', '8.3', '8.4'] steps: - name: Setup PHP, with composer and extensions From 99cfdb575e00a2e9884dfaafb273e5b6f246f33e Mon Sep 17 00:00:00 2001 From: Jason Davis Date: Wed, 2 Apr 2025 12:31:03 -0700 Subject: [PATCH 73/93] PHP 8.4 Deprecation fixes (#2413) * PHP 8.4 implicit nullable deprecation fix * PHP 8.4 - avoid "Constant E_STRICT is deprecated" message * Remove stray space * Fix deprecations --------- Co-authored-by: Tim van Dijen --- modules/admin/src/Controller/Test.php | 2 +- modules/core/src/Auth/Process/Cardinality.php | 4 ++-- .../src/Auth/Process/CardinalitySingle.php | 4 ++-- .../core/src/Storage/SQLPermanentStorage.php | 22 +++++++++---------- modules/cron/src/Cron.php | 2 +- modules/saml/src/Error.php | 2 +- modules/saml/src/Error/NoAuthnContext.php | 2 +- modules/saml/src/Error/NoAvailableIDP.php | 2 +- modules/saml/src/Error/NoPassive.php | 2 +- modules/saml/src/Error/NoSupportedIDP.php | 2 +- modules/saml/src/Error/ProxyCountExceeded.php | 2 +- modules/saml/src/IdP/SAML2.php | 20 ++++++++--------- src/SimpleSAML/Auth/Simple.php | 4 ++-- src/SimpleSAML/Compat/SspContainer.php | 2 +- src/SimpleSAML/Database.php | 8 +++---- src/SimpleSAML/Error/AuthSource.php | 2 +- src/SimpleSAML/Error/ConfigurationError.php | 2 +- .../Error/CriticalConfigurationError.php | 2 +- src/SimpleSAML/Error/ErrorHandler.php | 3 ++- src/SimpleSAML/Error/UserAborted.php | 2 +- src/SimpleSAML/IdP.php | 2 +- src/SimpleSAML/IdP/IFrameLogoutHandler.php | 2 +- src/SimpleSAML/IdP/LogoutHandlerInterface.php | 2 +- .../IdP/TraditionalLogoutHandler.php | 2 +- .../Metadata/MetaDataStorageHandler.php | 10 ++++++--- src/SimpleSAML/Metadata/SAMLParser.php | 2 +- src/SimpleSAML/SessionHandlerCookie.php | 2 +- src/SimpleSAML/Store/RedisStore.php | 2 +- src/SimpleSAML/Utils/Config/Metadata.php | 6 ++--- src/SimpleSAML/Utils/Crypto.php | 8 +++---- src/SimpleSAML/Utils/EMail.php | 8 +++---- src/SimpleSAML/Utils/Net.php | 4 ++-- src/SimpleSAML/Utils/Time.php | 8 +++---- src/SimpleSAML/Utils/XML.php | 2 +- 34 files changed, 78 insertions(+), 73 deletions(-) diff --git a/modules/admin/src/Controller/Test.php b/modules/admin/src/Controller/Test.php index 745bd77b8a..7e45977bdf 100644 --- a/modules/admin/src/Controller/Test.php +++ b/modules/admin/src/Controller/Test.php @@ -101,7 +101,7 @@ public function setAuthState(Auth\State $authState): void * @param string|null $as * @return \SimpleSAML\XHTML\Template|\SimpleSAML\HTTP\RunnableResponse */ - public function main(Request $request, string $as = null): Response + public function main(Request $request, ?string $as = null): Response { $this->authUtils->requireAdmin(); if (is_null($as)) { diff --git a/modules/core/src/Auth/Process/Cardinality.php b/modules/core/src/Auth/Process/Cardinality.php index 160261d07e..e22686804e 100644 --- a/modules/core/src/Auth/Process/Cardinality.php +++ b/modules/core/src/Auth/Process/Cardinality.php @@ -33,10 +33,10 @@ class Cardinality extends Auth\ProcessingFilter * * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. - * @param \SimpleSAML\Utils\HTTP $httpUtils HTTP utility service (handles redirects). + * @param \SimpleSAML\Utils\HTTP|null $httpUtils HTTP utility service (handles redirects). * @throws \SimpleSAML\Error\Exception */ - public function __construct(array &$config, $reserved, Utils\HTTP $httpUtils = null) + public function __construct(array &$config, $reserved, ?Utils\HTTP $httpUtils = null) { parent::__construct($config, $reserved); diff --git a/modules/core/src/Auth/Process/CardinalitySingle.php b/modules/core/src/Auth/Process/CardinalitySingle.php index fd51fb79a9..c559e295a2 100644 --- a/modules/core/src/Auth/Process/CardinalitySingle.php +++ b/modules/core/src/Auth/Process/CardinalitySingle.php @@ -44,9 +44,9 @@ class CardinalitySingle extends Auth\ProcessingFilter * * @param array &$config Configuration information about this filter. * @param mixed $reserved For future use. - * @param \SimpleSAML\Utils\HTTP $httpUtils HTTP utility service (handles redirects). + * @param \SimpleSAML\Utils\HTTP|null $httpUtils HTTP utility service (handles redirects). */ - public function __construct(array &$config, $reserved, Utils\HTTP $httpUtils = null) + public function __construct(array &$config, $reserved, ?Utils\HTTP $httpUtils = null) { parent::__construct($config, $reserved); diff --git a/modules/core/src/Storage/SQLPermanentStorage.php b/modules/core/src/Storage/SQLPermanentStorage.php index 5ba08cffdb..61095c9baf 100644 --- a/modules/core/src/Storage/SQLPermanentStorage.php +++ b/modules/core/src/Storage/SQLPermanentStorage.php @@ -29,7 +29,7 @@ class SQLPermanentStorage * @param \SimpleSAML\Configuration|null $config * @throws \Exception */ - public function __construct(string $name, Configuration $config = null) + public function __construct(string $name, ?Configuration $config = null) { if (is_null($config)) { $config = Configuration::getInstance(); @@ -81,7 +81,7 @@ public function __construct(string $name, Configuration $config = null) * @param string $value * @param int|null $duration */ - public function set(string $type, string $key1, string $key2, string $value, int $duration = null): void + public function set(string $type, string $key1, string $key2, string $value, ?int $duration = null): void { if ($this->exists($type, $key1, $key2)) { $this->update($type, $key1, $key2, $value, $duration); @@ -99,7 +99,7 @@ public function set(string $type, string $key1, string $key2, string $value, int * @param int|null $duration * @return array */ - private function insert(string $type, string $key1, string $key2, string $value, int $duration = null): array + private function insert(string $type, string $key1, string $key2, string $value, ?int $duration = null): array { $expire = is_null($duration) ? null : (time() + $duration); @@ -125,7 +125,7 @@ private function insert(string $type, string $key1, string $key2, string $value, * @param int|null $duration * @return array */ - private function update(string $type, string $key1, string $key2, string $value, int $duration = null): array + private function update(string $type, string $key1, string $key2, string $value, ?int $duration = null): array { $expire = is_null($duration) ? null : (time() + $duration); @@ -148,7 +148,7 @@ private function update(string $type, string $key1, string $key2, string $value, * @param string|null $key2 * @return array|null */ - public function get(string $type = null, string $key1 = null, string $key2 = null): ?array + public function get(?string $type = null, ?string $key1 = null, ?string $key2 = null): ?array { $conditions = $this->getCondition($type, $key1, $key2); $query = 'SELECT * FROM data WHERE ' . $conditions; @@ -173,7 +173,7 @@ public function get(string $type = null, string $key1 = null, string $key2 = nul * @param string|null $key2 * @return string|null */ - public function getValue(string $type = null, string $key1 = null, string $key2 = null): ?string + public function getValue(?string $type = null, ?string $key1 = null, ?string $key2 = null): ?string { $res = $this->get($type, $key1, $key2); if ($res === null) { @@ -206,7 +206,7 @@ public function exists(string $type, string $key1, string $key2): bool * @param string|null $key2 * @return array|false */ - public function getList(string $type = null, string $key1 = null, string $key2 = null) + public function getList(?string $type = null, ?string $key1 = null, ?string $key2 = null) { $conditions = $this->getCondition($type, $key1, $key2); $query = 'SELECT * FROM data WHERE ' . $conditions; @@ -234,9 +234,9 @@ public function getList(string $type = null, string $key1 = null, string $key2 = * @return array|null */ public function getKeys( - string $type = null, - string $key1 = null, - string $key2 = null, + ?string $type = null, + ?string $key1 = null, + ?string $key2 = null, string $whichKey = 'type', ): ?array { if (!in_array($whichKey, ['key1', 'key2', 'type'], true)) { @@ -299,7 +299,7 @@ public function removeExpired(): int * @param string|null $key2 * @return string */ - private function getCondition(string $type = null, string $key1 = null, string $key2 = null): string + private function getCondition(?string $type = null, ?string $key1 = null, ?string $key2 = null): string { $conditions = []; if (!is_null($type)) { diff --git a/modules/cron/src/Cron.php b/modules/cron/src/Cron.php index b6f7b43f9a..0cffbc296c 100644 --- a/modules/cron/src/Cron.php +++ b/modules/cron/src/Cron.php @@ -26,7 +26,7 @@ class Cron * @param \SimpleSAML\Configuration $cronconfig The cron configuration to use. If not specified defaults * to `config/module_cron.php` */ - public function __construct(Configuration $cronconfig = null) + public function __construct(?Configuration $cronconfig = null) { if ($cronconfig == null) { $cronconfig = Configuration::getConfig('module_cron.php'); diff --git a/modules/saml/src/Error.php b/modules/saml/src/Error.php index e026f14b9d..8bf5df581b 100644 --- a/modules/saml/src/Error.php +++ b/modules/saml/src/Error.php @@ -29,7 +29,7 @@ public function __construct( private string $status, private ?string $subStatus = null, private ?string $statusMessage = null, - Throwable $cause = null, + ?Throwable $cause = null, ) { $st = self::shortStatus($status); if ($subStatus !== null) { diff --git a/modules/saml/src/Error/NoAuthnContext.php b/modules/saml/src/Error/NoAuthnContext.php index d3c59fc46f..7b1a5fee04 100644 --- a/modules/saml/src/Error/NoAuthnContext.php +++ b/modules/saml/src/Error/NoAuthnContext.php @@ -23,7 +23,7 @@ class NoAuthnContext extends \SimpleSAML\Module\saml\Error * @param string|null $message A short message explaining why this error happened. * @param \Throwable|null $cause An exception that caused this error. */ - public function __construct(string $responsible, string $message = null, Throwable $cause = null) + public function __construct(string $responsible, ?string $message = null, ?Throwable $cause = null) { parent::__construct($responsible, Constants::STATUS_NO_AUTHN_CONTEXT, $message, $cause); } diff --git a/modules/saml/src/Error/NoAvailableIDP.php b/modules/saml/src/Error/NoAvailableIDP.php index 8bf5014687..e515cb1f70 100644 --- a/modules/saml/src/Error/NoAvailableIDP.php +++ b/modules/saml/src/Error/NoAvailableIDP.php @@ -23,7 +23,7 @@ class NoAvailableIDP extends \SimpleSAML\Module\saml\Error * @param string|null $message A short message explaining why this error happened. * @param \Throwable|null $cause An exception that caused this error. */ - public function __construct(string $responsible, string $message = null, Throwable $cause = null) + public function __construct(string $responsible, ?string $message = null, ?Throwable $cause = null) { parent::__construct($responsible, Constants::STATUS_NO_AVAILABLE_IDP, $message, $cause); } diff --git a/modules/saml/src/Error/NoPassive.php b/modules/saml/src/Error/NoPassive.php index eb99a140b5..bba588f1b6 100644 --- a/modules/saml/src/Error/NoPassive.php +++ b/modules/saml/src/Error/NoPassive.php @@ -23,7 +23,7 @@ class NoPassive extends \SimpleSAML\Module\saml\Error * @param string|null $message A short message explaining why this error happened. * @param \Throwable|null $cause An exception that caused this error. */ - public function __construct(string $responsible, string $message = null, Throwable $cause = null) + public function __construct(string $responsible, ?string $message = null, ?Throwable $cause = null) { parent::__construct($responsible, Constants::STATUS_NO_PASSIVE, $message, $cause); } diff --git a/modules/saml/src/Error/NoSupportedIDP.php b/modules/saml/src/Error/NoSupportedIDP.php index 8afee75611..41cd41ae92 100644 --- a/modules/saml/src/Error/NoSupportedIDP.php +++ b/modules/saml/src/Error/NoSupportedIDP.php @@ -23,7 +23,7 @@ class NoSupportedIDP extends \SimpleSAML\Module\saml\Error * @param string|null $message A short message explaining why this error happened. * @param \Throwable|null $cause An exception that caused this error. */ - public function __construct(string $responsible, string $message = null, Throwable $cause = null) + public function __construct(string $responsible, ?string $message = null, ?Throwable $cause = null) { parent::__construct($responsible, Constants::STATUS_NO_SUPPORTED_IDP, $message, $cause); } diff --git a/modules/saml/src/Error/ProxyCountExceeded.php b/modules/saml/src/Error/ProxyCountExceeded.php index 4a7a5d9b6c..984df91f9d 100644 --- a/modules/saml/src/Error/ProxyCountExceeded.php +++ b/modules/saml/src/Error/ProxyCountExceeded.php @@ -23,7 +23,7 @@ class ProxyCountExceeded extends \SimpleSAML\Module\saml\Error * @param string|null $message A short message explaining why this error happened. * @param \Throwable|null $cause An exception that caused this error. */ - public function __construct(string $responsible, string $message = null, Throwable $cause = null) + public function __construct(string $responsible, ?string $message = null, ?Throwable $cause = null) { parent::__construct($responsible, Constants::STATUS_PROXY_COUNT_EXCEEDED, $message, $cause); } diff --git a/modules/saml/src/IdP/SAML2.php b/modules/saml/src/IdP/SAML2.php index 9fc88c8d38..1695d89aaf 100644 --- a/modules/saml/src/IdP/SAML2.php +++ b/modules/saml/src/IdP/SAML2.php @@ -198,9 +198,9 @@ public static function handleAuthError(Error\Exception $exception, array $state) private static function getAssertionConsumerService( array $supportedBindings, Configuration $spMetadata, - string $AssertionConsumerServiceURL = null, - string $ProtocolBinding = null, - int $AssertionConsumerServiceIndex = null, + ?string $AssertionConsumerServiceURL = null, + ?string $ProtocolBinding = null, + ?int $AssertionConsumerServiceIndex = null, bool $authnRequestSigned = false, ): ?array { /* We want to pick the best matching endpoint in the case where for example @@ -533,9 +533,9 @@ public static function receiveAuthnRequest(IdP $idp): void * * @param \SimpleSAML\IdP $idp The IdP we are sending a logout request from. * @param array $association The association that should be terminated. - * @param string|null $relayState An id that should be carried across the logout. + * @param string|null $relayState An id that should be carried across the logout. */ - public static function sendLogoutRequest(IdP $idp, array $association, string $relayState = null): void + public static function sendLogoutRequest(IdP $idp, array $association, ?string $relayState = null): void { Logger::info('Sending SAML 2.0 LogoutRequest to: ' . var_export($association['saml:entityID'], true)); @@ -702,11 +702,11 @@ public static function receiveLogoutMessage(IdP $idp): void * * @param \SimpleSAML\IdP $idp The IdP we are sending a logout request from. * @param array $association The association that should be terminated. - * @param string|NULL $relayState An id that should be carried across the logout. + * @param string|NULL $relayState An id that should be carried across the logout. * * @return string The logout URL. */ - public static function getLogoutURL(IdP $idp, array $association, string $relayState = null): string + public static function getLogoutURL(IdP $idp, array $association, ?string $relayState = null): string { Logger::info('Sending SAML 2.0 LogoutRequest to: ' . var_export($association['saml:entityID'], true)); @@ -761,7 +761,7 @@ public static function getAssociationConfig(IdP $idp, array $association): Confi * Retrieve the metadata of a hosted SAML 2 IdP. * * @param string $entityid The entity ID of the hosted SAML 2 IdP whose metadata we want. - * @param MetaDataStorageHandler $handler Optionally the metadata storage to use, + * @param MetaDataStorageHandler|null $handler Optionally the metadata storage to use, * if omitted the configured handler will be used. * * @return array @@ -769,7 +769,7 @@ public static function getAssociationConfig(IdP $idp, array $association): Confi * @throws \SimpleSAML\Error\Exception * @throws \SimpleSAML\Error\MetadataNotFound */ - public static function getHostedMetadata(string $entityid, MetaDataStorageHandler $handler = null): array + public static function getHostedMetadata(string $entityid, ?MetaDataStorageHandler $handler = null): array { $globalConfig = Configuration::getInstance(); if ($handler === null) { @@ -1409,7 +1409,7 @@ private static function buildLogoutRequest( Configuration $idpMetadata, Configuration $spMetadata, array $association, - string $relayState = null, + ?string $relayState = null, ): LogoutRequest { $lr = Message::buildLogoutRequest($idpMetadata, $spMetadata); $lr->setRelayState($relayState); diff --git a/src/SimpleSAML/Auth/Simple.php b/src/SimpleSAML/Auth/Simple.php index d42c47e3d3..b6f69d3b2c 100644 --- a/src/SimpleSAML/Auth/Simple.php +++ b/src/SimpleSAML/Auth/Simple.php @@ -35,8 +35,8 @@ class Simple */ public function __construct( protected string $authSource, - Configuration $config = null, - Session $session = null, + ?Configuration $config = null, + ?Session $session = null, ) { if ($config === null) { $config = Configuration::getInstance(); diff --git a/src/SimpleSAML/Compat/SspContainer.php b/src/SimpleSAML/Compat/SspContainer.php index f098d275f8..2718ef2a72 100644 --- a/src/SimpleSAML/Compat/SspContainer.php +++ b/src/SimpleSAML/Compat/SspContainer.php @@ -96,7 +96,7 @@ public function getTempDir(): string * @param string $date * @param int|null $mode */ - public function writeFile(string $filename, string $data, int $mode = null): void + public function writeFile(string $filename, string $data, ?int $mode = null): void { $sysUtils = new Utils\System(); diff --git a/src/SimpleSAML/Database.php b/src/SimpleSAML/Database.php index 4f51170d63..588b1b4eb9 100644 --- a/src/SimpleSAML/Database.php +++ b/src/SimpleSAML/Database.php @@ -57,11 +57,11 @@ class Database /** * Retrieves the current database instance. Will create a new one if there isn't an existing connection. * - * @param \SimpleSAML\Configuration $altConfig Optional: Instance of a \SimpleSAML\Configuration class + * @param \SimpleSAML\Configuration|null $altConfig Optional: Instance of a \SimpleSAML\Configuration class * * @return \SimpleSAML\Database The shared database connection. */ - public static function getInstance(Configuration $altConfig = null): Database + public static function getInstance(?Configuration $altConfig = null): Database { $config = ($altConfig) ? $altConfig : Configuration::getInstance(); $instanceId = self::generateInstanceId($config); @@ -159,12 +159,12 @@ private static function generateInstanceId(Configuration $config): string * @param string $dsn Database connection string * @param string|null $username SQL user * @param string|null $password SQL password - * @param array $options PDO options + * @param array $options PDO options * * @throws \Exception If an error happens while trying to connect to the database. * @return \PDO object */ - private function connect(string $dsn, string $username = null, string $password = null, array $options): PDO + private function connect(string $dsn, ?string $username = null, ?string $password = null, array $options = []): PDO { try { $db = new PDO($dsn, $username, $password, $options); diff --git a/src/SimpleSAML/Error/AuthSource.php b/src/SimpleSAML/Error/AuthSource.php index f2ab95b28d..4cd207bc81 100644 --- a/src/SimpleSAML/Error/AuthSource.php +++ b/src/SimpleSAML/Error/AuthSource.php @@ -25,7 +25,7 @@ class AuthSource extends Error public function __construct( private string $authsource, private string $reason, - Throwable $cause = null, + ?Throwable $cause = null, ) { $this->authsource = $authsource; $this->reason = $reason; diff --git a/src/SimpleSAML/Error/ConfigurationError.php b/src/SimpleSAML/Error/ConfigurationError.php index 7dc54582ed..b9bd562d3c 100644 --- a/src/SimpleSAML/Error/ConfigurationError.php +++ b/src/SimpleSAML/Error/ConfigurationError.php @@ -34,7 +34,7 @@ class ConfigurationError extends Error * @param string|null $file The configuration file that originated this error. * @param array|null $config The configuration array that led to this problem. */ - public function __construct(string $reason = null, string $file = null, array $config = null) + public function __construct(?string $reason = null, ?string $file = null, ?array $config = null) { $file_str = ''; $reason_str = '.'; diff --git a/src/SimpleSAML/Error/CriticalConfigurationError.php b/src/SimpleSAML/Error/CriticalConfigurationError.php index 09b0d6779c..ec1c3a0d04 100644 --- a/src/SimpleSAML/Error/CriticalConfigurationError.php +++ b/src/SimpleSAML/Error/CriticalConfigurationError.php @@ -49,7 +49,7 @@ class CriticalConfigurationError extends ConfigurationError * @param string|null $file The configuration file that originated this error. * @param array|null $config The configuration array that led to this problem. */ - public function __construct(string $reason = null, string $file = null, array $config = null) + public function __construct(?string $reason = null, ?string $file = null, ?array $config = null) { if ($config === null) { $config = self::$minimum_config; diff --git a/src/SimpleSAML/Error/ErrorHandler.php b/src/SimpleSAML/Error/ErrorHandler.php index ae9297b9fe..a889c7205f 100644 --- a/src/SimpleSAML/Error/ErrorHandler.php +++ b/src/SimpleSAML/Error/ErrorHandler.php @@ -46,7 +46,8 @@ public function customErrorHandler( E_USER_DEPRECATED => 'User Deprecated', E_NOTICE => 'Notice', E_USER_NOTICE => 'User Notice', - E_STRICT => 'Runtime Notice', + // E_STRICT (2048) has become deprecated in PHP 8.4 + 2048 => 'Runtime Notice', E_WARNING => 'Warning', E_USER_WARNING => 'User Warning', E_COMPILE_WARNING => 'Compile Warning', diff --git a/src/SimpleSAML/Error/UserAborted.php b/src/SimpleSAML/Error/UserAborted.php index e995e5dd01..5ffcb118aa 100644 --- a/src/SimpleSAML/Error/UserAborted.php +++ b/src/SimpleSAML/Error/UserAborted.php @@ -19,7 +19,7 @@ class UserAborted extends Error * * @param \Throwable|null $cause The exception that caused this error. */ - public function __construct(Throwable $cause = null) + public function __construct(?Throwable $cause = null) { parent::__construct(ErrorCodes::USERABORTED, $cause); } diff --git a/src/SimpleSAML/IdP.php b/src/SimpleSAML/IdP.php index 2270dff0ed..a587f997db 100644 --- a/src/SimpleSAML/IdP.php +++ b/src/SimpleSAML/IdP.php @@ -505,7 +505,7 @@ public function handleLogoutRequest(array &$state, ?string $assocId): void * @param string|null $relayState The RelayState from the start of the logout. * @param \SimpleSAML\Error\Exception|null $error The error that occurred during session termination (if any). */ - public function handleLogoutResponse(string $assocId, ?string $relayState, Error\Exception $error = null): void + public function handleLogoutResponse(string $assocId, ?string $relayState, ?Error\Exception $error = null): void { $index = strpos($assocId, ':'); Assert::integer($index); diff --git a/src/SimpleSAML/IdP/IFrameLogoutHandler.php b/src/SimpleSAML/IdP/IFrameLogoutHandler.php index 134fd8840a..75f9645e8e 100644 --- a/src/SimpleSAML/IdP/IFrameLogoutHandler.php +++ b/src/SimpleSAML/IdP/IFrameLogoutHandler.php @@ -85,7 +85,7 @@ public function startLogout(array &$state, ?string $assocId): void * @param string|null $relayState The RelayState from the start of the logout. * @param \SimpleSAML\Error\Exception|null $error The error that occurred during session termination (if any). */ - public function onResponse(string $assocId, ?string $relayState, Error\Exception $error = null): void + public function onResponse(string $assocId, ?string $relayState, ?Error\Exception $error = null): void { $this->idp->terminateAssociation($assocId); diff --git a/src/SimpleSAML/IdP/LogoutHandlerInterface.php b/src/SimpleSAML/IdP/LogoutHandlerInterface.php index 56e4098a14..148981d072 100644 --- a/src/SimpleSAML/IdP/LogoutHandlerInterface.php +++ b/src/SimpleSAML/IdP/LogoutHandlerInterface.php @@ -43,5 +43,5 @@ public function startLogout(array &$state, ?string $assocId): void; * @param string|null $relayState The RelayState from the start of the logout. * @param \SimpleSAML\Error\Exception|null $error The error that occurred during session termination (if any). */ - public function onResponse(string $assocId, ?string $relayState, Error\Exception $error = null): void; + public function onResponse(string $assocId, ?string $relayState, ?Error\Exception $error = null): void; } diff --git a/src/SimpleSAML/IdP/TraditionalLogoutHandler.php b/src/SimpleSAML/IdP/TraditionalLogoutHandler.php index 06e3e021cb..c86b3f9c07 100644 --- a/src/SimpleSAML/IdP/TraditionalLogoutHandler.php +++ b/src/SimpleSAML/IdP/TraditionalLogoutHandler.php @@ -93,7 +93,7 @@ public function startLogout(array &$state, /** @scrutinizer ignore-unused */?str * * @throws \SimpleSAML\Error\Exception If the RelayState was lost during logout. */ - public function onResponse(string $assocId, ?string $relayState, Error\Exception $error = null): void + public function onResponse(string $assocId, ?string $relayState, ?Error\Exception $error = null): void { if ($relayState === null) { throw new Error\Exception('RelayState lost during logout.'); diff --git a/src/SimpleSAML/Metadata/MetaDataStorageHandler.php b/src/SimpleSAML/Metadata/MetaDataStorageHandler.php index af70c63b08..92ff8d3ae9 100644 --- a/src/SimpleSAML/Metadata/MetaDataStorageHandler.php +++ b/src/SimpleSAML/Metadata/MetaDataStorageHandler.php @@ -81,13 +81,17 @@ protected function __construct() * * @param string $property The metadata property which should be auto-generated. * @param string $set The set we the property comes from. - * @param string $overrideHost Hostname to use in the URLs + * @param string|null $overrideHost Hostname to use in the URLs * * @return string|array The auto-generated metadata property. * @throws \Exception If the metadata cannot be generated automatically. */ - public function getGenerated(string $property, string $set, ?string $overrideHost = null): string|array - { + public function getGenerated( + string $property, + string $set, + ?string $overrideHost = null, + ?string $entityId = null, + ): string|array { // first we check if the user has overridden this property in the metadata try { $metadataSet = $this->getMetaDataCurrent($set); diff --git a/src/SimpleSAML/Metadata/SAMLParser.php b/src/SimpleSAML/Metadata/SAMLParser.php index 9cccfcda1b..4b114f73c5 100644 --- a/src/SimpleSAML/Metadata/SAMLParser.php +++ b/src/SimpleSAML/Metadata/SAMLParser.php @@ -358,7 +358,7 @@ public static function parseDescriptorsString(string $string): array * be the entity id. * @throws \Exception if the document is empty or the root is an unexpected node. */ - public static function parseDescriptorsElement(DOMElement $element = null): array + public static function parseDescriptorsElement(?DOMElement $element = null): array { if ($element === null) { throw new Exception('Document was empty.'); diff --git a/src/SimpleSAML/SessionHandlerCookie.php b/src/SimpleSAML/SessionHandlerCookie.php index 2e6ac8a17a..eeb54239c9 100644 --- a/src/SimpleSAML/SessionHandlerCookie.php +++ b/src/SimpleSAML/SessionHandlerCookie.php @@ -152,7 +152,7 @@ public function hasSessionCookie(): bool * * @throws \SimpleSAML\Error\CannotSetCookie If we can't set the cookie. */ - public function setCookie(string $sessionName, ?string $sessionID, array $cookieParams = null): void + public function setCookie(string $sessionName, ?string $sessionID, ?array $cookieParams = null): void { if ($cookieParams !== null) { $params = array_merge($this->getCookieParams(), $cookieParams); diff --git a/src/SimpleSAML/Store/RedisStore.php b/src/SimpleSAML/Store/RedisStore.php index 3560d65af8..3dab9bfa54 100644 --- a/src/SimpleSAML/Store/RedisStore.php +++ b/src/SimpleSAML/Store/RedisStore.php @@ -28,7 +28,7 @@ class RedisStore implements StoreInterface * Initialize the Redis data store. * @param \Predis\Client|null $redis */ - public function __construct(Client $redis = null) + public function __construct(?Client $redis = null) { if (!class_exists(Client::class)) { throw new Error\CriticalConfigurationError('predis/predis is not available.'); diff --git a/src/SimpleSAML/Utils/Config/Metadata.php b/src/SimpleSAML/Utils/Config/Metadata.php index 2dd4074996..d2901c8a86 100644 --- a/src/SimpleSAML/Utils/Config/Metadata.php +++ b/src/SimpleSAML/Utils/Config/Metadata.php @@ -175,12 +175,12 @@ function ($t) { * Find the default endpoint in an endpoint array. * * @param array $endpoints An array with endpoints. - * @param array $bindings An array with acceptable bindings. Can be null if any binding is allowed. + * @param array|null $bindings An array with acceptable bindings. Can be null if any binding is allowed. * * @return array|NULL The default endpoint, or null if no acceptable endpoints are used. * */ - public static function getDefaultEndpoint(array $endpoints, array $bindings = null): ?array + public static function getDefaultEndpoint(array $endpoints, ?array $bindings = null): ?array { $firstNotFalse = null; $firstAllowed = null; @@ -246,7 +246,7 @@ public static function isHiddenFromDiscovery(array $metadata): bool /** * This method parses the different possible values of the NameIDPolicy metadata configuration. */ - public static function parseNameIdPolicy(array $nameIdPolicy = null): array + public static function parseNameIdPolicy(?array $nameIdPolicy = null): array { if ($nameIdPolicy === null) { // when NameIDPolicy is unset or set to null, default to transient diff --git a/src/SimpleSAML/Utils/Crypto.php b/src/SimpleSAML/Utils/Crypto.php index 715f81625b..67b47679ec 100644 --- a/src/SimpleSAML/Utils/Crypto.php +++ b/src/SimpleSAML/Utils/Crypto.php @@ -74,7 +74,7 @@ private function aesDecryptInternal(string $ciphertext, string $secret): string * Decrypt data using AES-256-CBC and the system-wide secret salt as key. * * @param string $ciphertext The HMAC of the encrypted data, the IV used and the encrypted data, concatenated. - * @param string $secret The secret to use to decrypt the data. + * @param string|null $secret The secret to use to decrypt the data. * If not provided, the secret salt from the configuration will be used * * @return string The decrypted data. @@ -83,7 +83,7 @@ private function aesDecryptInternal(string $ciphertext, string $secret): string * * @deprecated - Possibly use xml-security library */ - public function aesDecrypt(string $ciphertext, string $secret = null): string + public function aesDecrypt(string $ciphertext, ?string $secret = null): string { if ($secret === null) { $configUtils = new Config(); @@ -140,7 +140,7 @@ private function aesEncryptInternal(string $data, string $secret): string * Encrypt data using AES-256-CBC and the system-wide secret salt as key. * * @param string $data The data to encrypt. - * @param string $secret The secret to use to decrypt the data. + * @param string|null $secret The secret to use to decrypt the data. * If not provided, the secret salt from the configuration will be used * * @return string An HMAC of the encrypted data, the IV and the encrypted data, concatenated. @@ -149,7 +149,7 @@ private function aesEncryptInternal(string $data, string $secret): string * * @deprecated - Possibly use xml-security library */ - public function aesEncrypt(string $data, string $secret = null): string + public function aesEncrypt(string $data, ?string $secret = null): string { if ($secret === null) { $configUtils = new Config(); diff --git a/src/SimpleSAML/Utils/EMail.php b/src/SimpleSAML/Utils/EMail.php index caf5163e58..b141f0d725 100644 --- a/src/SimpleSAML/Utils/EMail.php +++ b/src/SimpleSAML/Utils/EMail.php @@ -34,8 +34,8 @@ class EMail * from the configuration is used. * * @param string $subject The subject of the e-mail - * @param string $from The from-address (both envelope and header) - * @param string $to The recipient + * @param string|null $from The from-address (both envelope and header) + * @param string|null $to The recipient * @param string $txt_template The template to use for plain text messages * @param string $html_template The template to use for html messages * @@ -43,8 +43,8 @@ class EMail */ public function __construct( string $subject, - string $from = null, - string $to = null, + ?string $from = null, + ?string $to = null, private string $txt_template = 'mailtxt.twig', private string $html_template = 'mailhtml.twig', ) { diff --git a/src/SimpleSAML/Utils/Net.php b/src/SimpleSAML/Utils/Net.php index 8bcd706436..a656425f6e 100644 --- a/src/SimpleSAML/Utils/Net.php +++ b/src/SimpleSAML/Utils/Net.php @@ -18,13 +18,13 @@ class Net * Check whether an IP address is part of a CIDR. * * @param string|array $cidr The network CIDR address. - * @param string $ip The IP address to check. Optional. Current remote address will be used if none specified. Do + * @param string|null $ip The IP address to check. Optional. Current remote address will be used if none specified. Do * not rely on default parameter if running behind load balancers. * * @return boolean True if the IP address belongs to the specified CIDR, false otherwise. * */ - public function ipCIDRcheck(string|array $cidr, string $ip = null): bool + public function ipCIDRcheck(string|array $cidr, ?string $ip = null): bool { if ($ip === null) { $ip = Request::createFromGlobals()->getClientIp() ?? '127.0.0.1'; diff --git a/src/SimpleSAML/Utils/Time.php b/src/SimpleSAML/Utils/Time.php index f09b93a75e..42d1b40aaf 100644 --- a/src/SimpleSAML/Utils/Time.php +++ b/src/SimpleSAML/Utils/Time.php @@ -28,11 +28,11 @@ class Time /** * This function generates a timestamp on the form used by the SAML protocols. * - * @param int $instant The time the timestamp should represent. Defaults to current time. + * @param int|null $instant The time the timestamp should represent. Defaults to current time. * * @return string The timestamp. */ - public function generateTimestamp(int $instant = null): string + public function generateTimestamp(?int $instant = null): string { if ($instant === null) { $instant = time(); @@ -82,14 +82,14 @@ public function initTimezone(): void * durations specified in the formats PYYYYMMDDThhmmss nor P[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss]. * * @param string $duration The duration, as a string. - * @param int $timestamp The unix timestamp we should apply the duration to. Optional, default to the current + * @param int|null $timestamp The unix timestamp we should apply the duration to. Optional, default to the current * time. * * @return int The new timestamp, after the duration is applied. * @throws \InvalidArgumentException If $duration is not a valid ISO 8601 duration or if the input parameters do * not have the right data types. */ - public function parseDuration(string $duration, int $timestamp = null): int + public function parseDuration(string $duration, ?int $timestamp = null): int { Assert::validDuration($duration); diff --git a/src/SimpleSAML/Utils/XML.php b/src/SimpleSAML/Utils/XML.php index dc2645a660..967da6e090 100644 --- a/src/SimpleSAML/Utils/XML.php +++ b/src/SimpleSAML/Utils/XML.php @@ -345,7 +345,7 @@ public function isValid(string|DOMDocument $xml, string $schema) * @param array $context * @return string|null */ - function (string $public = null, string $system, /** @scrutinizer ignore-unused */ array $context) { + function (?string $public = null, string $system = '', /** @scrutinizer ignore-unused */ array $context = []) { if (filter_var($system, FILTER_VALIDATE_URL) === $system) { return null; } From f1b45ab39340eece85d36f1249372f44cdbcc89e Mon Sep 17 00:00:00 2001 From: nikolas Date: Sun, 22 Jun 2025 15:43:54 -0400 Subject: [PATCH 74/93] psalm.xml: Fix typo in comment (#2477) --- psalm.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psalm.xml b/psalm.xml index de26cb641f..d1116b67dd 100644 --- a/psalm.xml +++ b/psalm.xml @@ -21,7 +21,7 @@ - + From a11c2e92a4de86ccb17d31434e33be6b009e25d4 Mon Sep 17 00:00:00 2001 From: Mark Kaulertz <33390109+m0ark@users.noreply.github.com> Date: Mon, 30 Jun 2025 18:53:18 +0200 Subject: [PATCH 75/93] Fix auth state AuthnInstant (#2478) * Fix persistence for AuthnInstant data The time of authentication is handled in the field 'AuthnInstant' and should be persisted in the state in case it is needed. --- docs/simplesamlphp-changelog.md | 1 + src/SimpleSAML/Auth/State.php | 2 +- tests/src/SimpleSAML/Auth/StateTest.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 413f76fc69..d2c093086e 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -9,6 +9,7 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD +* Fix auth state AuthnInstant (#2478) ## Version 2.3.8 diff --git a/src/SimpleSAML/Auth/State.php b/src/SimpleSAML/Auth/State.php index 814b4394b6..55399563c3 100644 --- a/src/SimpleSAML/Auth/State.php +++ b/src/SimpleSAML/Auth/State.php @@ -126,7 +126,7 @@ public static function getPersistentAuthData(array $state): array 'Attributes', 'Expire', 'LogoutState', - 'AuthInstant', + 'AuthnInstant', 'RememberMe', 'saml:sp:NameID', ]; diff --git a/tests/src/SimpleSAML/Auth/StateTest.php b/tests/src/SimpleSAML/Auth/StateTest.php index dd7744e3b4..08a2293b50 100644 --- a/tests/src/SimpleSAML/Auth/StateTest.php +++ b/tests/src/SimpleSAML/Auth/StateTest.php @@ -24,7 +24,7 @@ public function testGetPersistentAuthData(): void 'Attributes' => [], 'Expire' => 1234, 'LogoutState' => 'logoutState', - 'AuthInstant' => 123456, + 'AuthnInstant' => 123456, 'RememberMe' => true, 'saml:sp:NameID' => 'nameID', ]; From 112b736d21579247d10345168ecece1385354dbf Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 1 Jul 2025 23:51:00 +0200 Subject: [PATCH 76/93] Fix markdown --- docs/simplesamlphp-reference-sp-remote.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/simplesamlphp-reference-sp-remote.md b/docs/simplesamlphp-reference-sp-remote.md index f032d20c30..d67f225c49 100644 --- a/docs/simplesamlphp-reference-sp-remote.md +++ b/docs/simplesamlphp-reference-sp-remote.md @@ -166,10 +166,9 @@ The following options can be set: : The three most commonly used values are: -: - 1. `urn:oasis:names:tc:SAML:2.0:nameid-format:transient` - 2. `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` - 3. `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` +* `urn:oasis:names:tc:SAML:2.0:nameid-format:transient` +* `urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` +* `urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress` : The `transient` format will generate a new unique ID every time the SP logs in. From 2b6f97fd3f701720c868076dbdebbfe9df83880c Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 7 Jul 2025 05:28:39 +0200 Subject: [PATCH 77/93] Fix SQLLite DB migration (#2474) Closes #2460 --- src/SimpleSAML/Store/SQLStore.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SimpleSAML/Store/SQLStore.php b/src/SimpleSAML/Store/SQLStore.php index 7597139d42..e472cad669 100644 --- a/src/SimpleSAML/Store/SQLStore.php +++ b/src/SimpleSAML/Store/SQLStore.php @@ -159,7 +159,7 @@ private function initTableVersionTable(): void */ $update = [ 'CREATE TABLE ' . $this->prefix . - '_tableVersion (_name VARCHAR(30) PRIMARY KEY NOT NULL, _version INTEGER NOT NULL)', + '_tableVersion_new (_name VARCHAR(30) PRIMARY KEY NOT NULL, _version INTEGER NOT NULL)', 'INSERT INTO ' . $this->prefix . '_tableVersion_new SELECT * FROM ' . $this->prefix . '_tableVersion', 'DROP TABLE ' . $this->prefix . '_tableVersion', From c12a20c3ebd773b62d597dafdfb5f7167d74ea5b Mon Sep 17 00:00:00 2001 From: exeba <2987336+exeba@users.noreply.github.com> Date: Thu, 10 Jul 2025 16:56:12 +0200 Subject: [PATCH 78/93] Allow "Secure" cookie attribute via HTTP on localhost (#2483) * allow secure cookie on localhost * allow ipv4 & ipv6 loopback addresses * Remove excess parenthesis --------- Co-authored-by: Sebastiano Degan Co-authored-by: Tim van Dijen --- docs/simplesamlphp-changelog.md | 1 + src/SimpleSAML/SessionHandler.php | 2 +- src/SimpleSAML/SessionHandlerPHP.php | 8 ++++---- src/SimpleSAML/Utils/HTTP.php | 19 +++++++++++++++---- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index d2c093086e..f9bfd12b77 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -10,6 +10,7 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD * Fix auth state AuthnInstant (#2478) +* Allow "Secure" cookie attribute via HTTP on localhost (#2483) ## Version 2.3.8 diff --git a/src/SimpleSAML/SessionHandler.php b/src/SimpleSAML/SessionHandler.php index 961b722d0b..2974f1d58b 100644 --- a/src/SimpleSAML/SessionHandler.php +++ b/src/SimpleSAML/SessionHandler.php @@ -164,7 +164,7 @@ public function getCookieParams(): array 'lifetime' => $config->getOptionalInteger('session.cookie.lifetime', 0), 'path' => $config->getOptionalString('session.cookie.path', '/'), 'domain' => $config->getOptionalString('session.cookie.domain', null), - 'secure' => $config->getOptionalBoolean('session.cookie.secure', $httpUtils->isHTTPS()), + 'secure' => $config->getOptionalBoolean('session.cookie.secure', $httpUtils->isSecureCookieAllowed()), 'samesite' => $config->getOptionalString('session.cookie.samesite', null), 'httponly' => true, ]; diff --git a/src/SimpleSAML/SessionHandlerPHP.php b/src/SimpleSAML/SessionHandlerPHP.php index 99931bd001..d7e6e42ad5 100644 --- a/src/SimpleSAML/SessionHandlerPHP.php +++ b/src/SimpleSAML/SessionHandlerPHP.php @@ -190,8 +190,8 @@ public function getCookieSessionId(): ?string $session_cookie_params = session_get_cookie_params(); $httpUtils = new Utils\HTTP(); - if ($session_cookie_params['secure'] && !$httpUtils->isHTTPS()) { - throw new Error\Exception('Session start with secure cookie not allowed on http.'); + if ($session_cookie_params['secure'] && !$httpUtils->isSecureCookieAllowed()) { + throw new Error\Exception('Session start with secure cookie not allowed on http (except on localhost).'); } @session_start(); @@ -322,9 +322,9 @@ public function setCookie(string $sessionName, ?string $sessionID, ?array $cooki } $httpUtils = new Utils\HTTP(); - if ($cookieParams['secure'] && !$httpUtils->isHTTPS()) { + if ($cookieParams['secure'] && !$httpUtils->isSecureCookieAllowed()) { throw new Error\CannotSetCookie( - 'Setting secure cookie on plain HTTP is not allowed.', + 'Setting secure cookie on plain HTTP (except on localhost) is not allowed.', Error\CannotSetCookie::SECURE_COOKIE, ); } diff --git a/src/SimpleSAML/Utils/HTTP.php b/src/SimpleSAML/Utils/HTTP.php index 9189d3bf7c..f6c7616ceb 100644 --- a/src/SimpleSAML/Utils/HTTP.php +++ b/src/SimpleSAML/Utils/HTTP.php @@ -1099,15 +1099,15 @@ public function setCookie(string $name, ?string $value, ?array $params = null, b $params = $default_params; } - // Do not set secure cookie if not on HTTPS - if ($params['secure'] && !$this->isHTTPS()) { + // Do not set secure cookie if not on HTTPS or localhost + if ($params['secure'] && !$this->isSecureCookieAllowed()) { if ($throw) { throw new Error\CannotSetCookie( - 'Setting secure cookie on plain HTTP is not allowed.', + 'Setting secure cookie on plain HTTP (except on localhost) is not allowed.', Error\CannotSetCookie::SECURE_COOKIE, ); } - Logger::warning('Error setting cookie: setting secure cookie on plain HTTP is not allowed.'); + Logger::warning('Error setting cookie: setting secure cookie on plain HTTP (except on localhost) is not allowed.'); return; } @@ -1164,6 +1164,17 @@ public function setCookie(string $name, ?string $value, ?array $params = null, b } + /** + * Check if "Secure" attribute on cookies is supported + * + * @return boolean True "Secure" attribute can be set, false otherwise. + */ + public function isSecureCookieAllowed(): bool + { + return $this->isHTTPS() || in_array($this->getSelfHost(), ['localhost', '127.0.0.1', '::1'], true); + } + + /** * Submit a POST form to a specific destination. * From 16271c64e84df0fd5fd345f002e98c7c0713179a Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 21 Jul 2025 21:43:18 +0200 Subject: [PATCH 79/93] Bugfix: fix override over errorURL --- docs/simplesamlphp-changelog.md | 1 + modules/saml/src/IdP/SAML2.php | 5 +++++ tests/modules/saml/src/IdP/SAML2Test.php | 14 ++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index f9bfd12b77..39173c2ad3 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -11,6 +11,7 @@ Released TBD * Fix auth state AuthnInstant (#2478) * Allow "Secure" cookie attribute via HTTP on localhost (#2483) +* Fix override over errorURL ## Version 2.3.8 diff --git a/modules/saml/src/IdP/SAML2.php b/modules/saml/src/IdP/SAML2.php index 1695d89aaf..42ea3f369c 100644 --- a/modules/saml/src/IdP/SAML2.php +++ b/modules/saml/src/IdP/SAML2.php @@ -962,6 +962,11 @@ public static function getHostedMetadata(string $entityid, ?MetaDataStorageHandl $metadata['RegistrationInfo'] = $config->getArray('RegistrationInfo'); } + // Override errorURL if set + if ($config->hasValue('errorURL')) { + $metadata['errorURL'] = $config->getString('errorURL'); + } + // configure signature options if ($config->hasValue('validate.authnrequest')) { $metadata['sign.authnrequest'] = $config->getBoolean('validate.authnrequest'); diff --git a/tests/modules/saml/src/IdP/SAML2Test.php b/tests/modules/saml/src/IdP/SAML2Test.php index ffcbf59d97..9e51018cec 100644 --- a/tests/modules/saml/src/IdP/SAML2Test.php +++ b/tests/modules/saml/src/IdP/SAML2Test.php @@ -262,6 +262,20 @@ private function idpMetadataHandlerHelper(array $metadata, array $extraconfig = return SAML2::getHostedMetadata($metadata['entityid']); } + + /** + * Test that an override for the errorURL produced the expected output. + */ + public function testIdPGetHostedMetadataErrorUrlOverride(): void + { + $md = [ + 'errorURL' => 'https://simplesamlphp.org', + ]; + $hostedMd = $this->idpMetadataHandlerHelper($md); + $this->assertEquals('https://simplesamlphp.org', $hostedMd['errorURL']); + } + + /** * A minimally configured hosted IdP has all default fields with expected values. */ From ddf2407c818d5408c26952c3363b40117e1b1805 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 23 Jul 2025 21:18:34 +0200 Subject: [PATCH 80/93] Fix broken link --- modules/saml/docs/sp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/saml/docs/sp.md b/modules/saml/docs/sp.md index de53d333ec..3312455cbe 100644 --- a/modules/saml/docs/sp.md +++ b/modules/saml/docs/sp.md @@ -153,7 +153,7 @@ The following attributes are available: `authproc` : Processing filters that should be run after SP authentication. - See the [authentication processing filter manual](simplesamlphp-authproc). + See the [authentication processing filter manual](../simplesamlphp-authproc). `certData` : Base64 encoded certificate data. Can be used instead of the `certificate` option. From 206632a5f7ad6f767902a0f4057bba90ffc0900a Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Fri, 15 Aug 2025 12:11:46 +0200 Subject: [PATCH 81/93] Remove double directory separator; getBasedir always ends with one --- src/SimpleSAML/Kernel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SimpleSAML/Kernel.php b/src/SimpleSAML/Kernel.php index ab30f77cfb..bb001642b3 100644 --- a/src/SimpleSAML/Kernel.php +++ b/src/SimpleSAML/Kernel.php @@ -66,7 +66,7 @@ public function getCacheDir(): string return $cachePath; } - return $configuration->getBaseDir() . DIRECTORY_SEPARATOR . $cachePath; + return $configuration->getBaseDir() . $cachePath; } From 87f88136fdccc800cac5853bf1bf4aa93525fd00 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 19 Aug 2025 23:57:52 +0200 Subject: [PATCH 82/93] Bump authorize-module --- .github/build/full.json | 2 +- docs/simplesamlphp-changelog.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/build/full.json b/.github/build/full.json index 69743931de..b43ffab681 100644 --- a/.github/build/full.json +++ b/.github/build/full.json @@ -2,7 +2,7 @@ "modules": { "authorize": { "repository": "simplesamlphp/simplesamlphp-module-authorize", - "version": "~1.6.1" + "version": "~1.6.2" }, "consent": { "repository": "simplesamlphp/simplesamlphp-module-consent", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 39173c2ad3..56cf253470 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -13,6 +13,10 @@ Released TBD * Allow "Secure" cookie attribute via HTTP on localhost (#2483) * Fix override over errorURL +`authorize` + +* Remove reauthentication-button when reauthentication is disabled (simplesamlphp/simplesamlphp-module-authorize#24) (v1.6.2) + ## Version 2.3.8 Released 2025-06-17 From 3f42b0de9447041a86a85ce60989d56819cf752d Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 20 Aug 2025 21:59:39 +0200 Subject: [PATCH 83/93] Fix branch alias --- composer.json | 2 +- composer.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index dd6959df8f..b98fd5154d 100644 --- a/composer.json +++ b/composer.json @@ -123,7 +123,7 @@ }, "extra": { "branch-alias": { - "dev-master": "2.4.0.x-dev" + "dev-master": "2.3.0.x-dev" } }, "scripts": { diff --git a/composer.lock b/composer.lock index beff2e3f01..76464a3b9e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d5a4c080ba45815db6d946b9838add1d", + "content-hash": "68a1204034bca5148f9a4eb08c1a013c", "packages": [ { "name": "gettext/gettext", From 8c247704b069683682467a0c8bee167f84988571 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 21 Aug 2025 16:25:11 +0200 Subject: [PATCH 84/93] Fix changelog for 2.2-branch --- docs/simplesamlphp-changelog.md | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 56cf253470..b838d3c589 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -165,6 +165,48 @@ Released 2024-08-20 * Add username_regex option - run regular expression over username before querying the database (simplesamlphp/simplesamlphp-module-sqlauth#11) (v1.3.0) +## Version 2.2.6 + +Released 2025-08-20 + +* Fix auth state AuthnInstant (#2478) + +`cron` + +* Fixed a security-issue where cron-jobs could be executed using the default key, + even if a different one was set (#2453) + +`metarefresh` + +* Fixed parsing of large metadata files (v1.2.4) + +## Version 2.2.5 + +Released 2025-03-11 + +* Fixed PHP 8.4 deprecation notices +* Fixed infinite recursion (#2367) +* Fixed "Undefined array key" warning in RequestedAuthnContextSelector if no RAC is present in the request +* Bumped vulnerable saml2-library to v4.17.0 + +## Version 2.2.4 + +Released 2024-12-02 + +`Security` + +* A security bug was patched in the `saml2-library` that allowed for XXE during the parsing + of SAML2-messages (CVE-2024-52596) + +`Other fixes` + +* Run ob_end_clean() on configuration file parsing error (#2219) +* Fix typo that caused the metadata file-upload to be hidden (#2271) + +`admin` + +* Fix metadata-viewer to output a valid PHP array + ## Version 2.2.3 Released 2024-08-20 From 1c67a3698c5600ac444fe0e9fff57cc7134a3cf4 Mon Sep 17 00:00:00 2001 From: Guy Halse Date: Fri, 5 Sep 2025 11:51:08 +0200 Subject: [PATCH 85/93] Update FontAwesome icon names (#2509) Per https://docs.fontawesome.com/v6/web/setup/upgrade/whats-changed#icons-renamed-in-version-6 --- docs/simplesamlphp-changelog.md | 1 + modules/admin/templates/federation.twig | 2 +- modules/core/templates/logout-iframe.twig | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index b838d3c589..5a7acfeca4 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -12,6 +12,7 @@ Released TBD * Fix auth state AuthnInstant (#2478) * Allow "Secure" cookie attribute via HTTP on localhost (#2483) * Fix override over errorURL +* Fix FontAwesome icon names (#2509) `authorize` diff --git a/modules/admin/templates/federation.twig b/modules/admin/templates/federation.twig index 017a5f6b0f..dae9211d04 100644 --- a/modules/admin/templates/federation.twig +++ b/modules/admin/templates/federation.twig @@ -56,7 +56,7 @@ - + {{ set.url }} diff --git a/modules/core/templates/logout-iframe.twig b/modules/core/templates/logout-iframe.twig index 1cd8b2d54c..5c96865c2f 100644 --- a/modules/core/templates/logout-iframe.twig +++ b/modules/core/templates/logout-iframe.twig @@ -37,11 +37,11 @@ {%- for key, sp in remaining_services %} {%- set timeout = 5 %} {%- set name = sp['metadata']|entityDisplayName %} - {%- set icon = 'circle-o-notch' %} + {%- set icon = 'circle-notch' %} {%- if sp['status'] == 'completed' %} - {%- set icon = 'check-circle' %} + {%- set icon = 'circle-check' %} {%- elseif sp['status'] == 'failed' %} - {%- set icon = 'exclamation-circle' %} + {%- set icon = 'circle-exclamation' %} {%- set failed = true %} {%- elseif (sp['status'] == 'onhold' or sp['status'] == 'inprogress') %} {%- set remaining = remaining + 1 %} From 229205e17a58f3b53c615bcd6cb797af16536a48 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Wed, 10 Sep 2025 10:34:21 +0200 Subject: [PATCH 86/93] Prevent emulation of SQL prepare-statements --- docs/simplesamlphp-customauth.md | 1 + modules/core/src/Storage/SQLPermanentStorage.php | 2 ++ src/SimpleSAML/Database.php | 1 + src/SimpleSAML/Store/SQLStore.php | 1 + 4 files changed, 5 insertions(+) diff --git a/docs/simplesamlphp-customauth.md b/docs/simplesamlphp-customauth.md index 72b336ebb1..a6de7a20de 100644 --- a/docs/simplesamlphp-customauth.md +++ b/docs/simplesamlphp-customauth.md @@ -352,6 +352,7 @@ class MyAuth extends \SimpleSAML\Module\core\Auth\UserPassBase /* Connect to the database. */ $db = new PDO($this->dsn, $this->username, $this->password, $this->options); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); /* Ensure that we are operating with UTF-8 encoding. * This command is for MySQL. Other databases may need different commands. diff --git a/modules/core/src/Storage/SQLPermanentStorage.php b/modules/core/src/Storage/SQLPermanentStorage.php index 61095c9baf..552b91de34 100644 --- a/modules/core/src/Storage/SQLPermanentStorage.php +++ b/modules/core/src/Storage/SQLPermanentStorage.php @@ -53,6 +53,8 @@ public function __construct(string $name, ?Configuration $config = null) $this->db = new PDO($dbfile); if ($this->db) { $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); + $this->db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); + $q = @$this->db->query('SELECT key1 FROM data LIMIT 1'); if ($q === false) { $this->db->exec(' diff --git a/src/SimpleSAML/Database.php b/src/SimpleSAML/Database.php index 588b1b4eb9..e6e46a2fc1 100644 --- a/src/SimpleSAML/Database.php +++ b/src/SimpleSAML/Database.php @@ -169,6 +169,7 @@ private function connect(string $dsn, ?string $username = null, ?string $passwor try { $db = new PDO($dsn, $username, $password, $options); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); return $db; } catch (PDOException $e) { diff --git a/src/SimpleSAML/Store/SQLStore.php b/src/SimpleSAML/Store/SQLStore.php index e472cad669..21e37239f4 100644 --- a/src/SimpleSAML/Store/SQLStore.php +++ b/src/SimpleSAML/Store/SQLStore.php @@ -78,6 +78,7 @@ public function __construct() throw new Exception("Database error: " . $e->getMessage()); } $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $this->pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $this->driver = $this->pdo->getAttribute(PDO::ATTR_DRIVER_NAME); From a5a3bace4c24075610cc302d007fc1ae633f94e1 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Sun, 5 Oct 2025 15:01:42 +0200 Subject: [PATCH 87/93] Bump dependencies --- composer.lock | 780 +++++++++++++++++++++++++++++++------------------- 1 file changed, 489 insertions(+), 291 deletions(-) diff --git a/composer.lock b/composer.lock index 76464a3b9e..99b6612bd2 100644 --- a/composer.lock +++ b/composer.lock @@ -347,16 +347,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.10.0", + "version": "v6.11.1", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144" + "reference": "d9e3b36b47f04b497a0164c5a20f92acb4593284" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144", - "reference": "bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/d9e3b36b47f04b497a0164c5a20f92acb4593284", + "reference": "d9e3b36b47f04b497a0164c5a20f92acb4593284", "shasum": "" }, "require": { @@ -377,6 +377,7 @@ }, "suggest": { "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", + "ext-imap": "Needed to support advanced email address parsing according to RFC822", "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", "ext-openssl": "Needed for secure SMTP sending and DKIM signing", "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", @@ -416,7 +417,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.10.0" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.11.1" }, "funding": [ { @@ -424,7 +425,7 @@ "type": "github" } ], - "time": "2025-04-24T15:19:31+00:00" + "time": "2025-09-30T11:54:53+00:00" }, { "name": "psr/cache", @@ -824,16 +825,16 @@ }, { "name": "simplesamlphp/assert", - "version": "v1.8.1", + "version": "v1.8.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/assert.git", - "reference": "f35e26e1201ec41be19404e23f87e53cf747ed3a" + "reference": "b551f50399540172f387d97b2e7246e6c352154d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/f35e26e1201ec41be19404e23f87e53cf747ed3a", - "reference": "f35e26e1201ec41be19404e23f87e53cf747ed3a", + "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/b551f50399540172f387d97b2e7246e6c352154d", + "reference": "b551f50399540172f387d97b2e7246e6c352154d", "shasum": "" }, "require": { @@ -841,13 +842,13 @@ "ext-filter": "*", "ext-pcre": "*", "ext-spl": "*", - "guzzlehttp/psr7": "~2.7.0", + "guzzlehttp/psr7": "~2.7.1", "php": "^8.1", "webmozart/assert": "~1.11.0" }, "require-dev": { "ext-intl": "*", - "simplesamlphp/simplesamlphp-test-framework": "~1.8.0" + "simplesamlphp/simplesamlphp-test-framework": "~1.9.2" }, "type": "library", "extra": { @@ -877,9 +878,9 @@ "description": "A wrapper around webmozart/assert to make it useful beyond checking method arguments", "support": { "issues": "https://github.com/simplesamlphp/assert/issues", - "source": "https://github.com/simplesamlphp/assert/tree/v1.8.1" + "source": "https://github.com/simplesamlphp/assert/tree/v1.8.2" }, - "time": "2025-01-09T12:10:04+00:00" + "time": "2025-06-28T12:57:30+00:00" }, { "name": "simplesamlphp/composer-module-installer", @@ -924,18 +925,60 @@ }, "time": "2025-03-19T20:38:37+00:00" }, + { + "name": "simplesamlphp/composer-xmlprovider-installer", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/simplesamlphp/composer-xmlprovider-installer.git", + "reference": "3d882187b5b0b404c381a2e4d17498ca4b2785b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplesamlphp/composer-xmlprovider-installer/zipball/3d882187b5b0b404c381a2e4d17498ca4b2785b3", + "reference": "3d882187b5b0b404c381a2e4d17498ca4b2785b3", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": "^8.1" + }, + "require-dev": { + "composer/composer": "^2.4", + "simplesamlphp/simplesamlphp-test-framework": "^1.5.4" + }, + "type": "composer-plugin", + "extra": { + "class": "SimpleSAML\\Composer\\XMLProvider\\XMLProviderInstallerPlugin" + }, + "autoload": { + "psr-4": { + "SimpleSAML\\Composer\\XMLProvider\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "description": "A composer plugin that will auto-generate a classmap with all classes that implement SerializableElementInterface.", + "support": { + "issues": "https://github.com/simplesamlphp/composer-xmlprovider-installer/issues", + "source": "https://github.com/simplesamlphp/composer-xmlprovider-installer/tree/v1.0.2" + }, + "time": "2025-06-28T18:54:25+00:00" + }, { "name": "simplesamlphp/saml2", - "version": "v4.18.1", + "version": "v4.19.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "78b1c6735db8e2f78dcea9bcac0317ad2b200d72" + "reference": "a1e25f1351591c2b007449735c0e62e016696576" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/78b1c6735db8e2f78dcea9bcac0317ad2b200d72", - "reference": "78b1c6735db8e2f78dcea9bcac0317ad2b200d72", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/a1e25f1351591c2b007449735c0e62e016696576", + "reference": "a1e25f1351591c2b007449735c0e62e016696576", "shasum": "" }, "require": { @@ -981,22 +1024,22 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.18.1" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.19.0" }, - "time": "2025-03-16T11:37:44+00:00" + "time": "2025-09-05T23:47:51+00:00" }, { "name": "simplesamlphp/simplesamlphp-assets-base", - "version": "v2.3.9", + "version": "v2.3.11", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-assets-base.git", - "reference": "75bd31897ed3634d97de2815b5fa668625f8134d" + "reference": "c852ea06c436222ec3e942122d4cec9f8661ba70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/75bd31897ed3634d97de2815b5fa668625f8134d", - "reference": "75bd31897ed3634d97de2815b5fa668625f8134d", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/c852ea06c436222ec3e942122d4cec9f8661ba70", + "reference": "c852ea06c436222ec3e942122d4cec9f8661ba70", "shasum": "" }, "require": { @@ -1017,22 +1060,22 @@ "description": "Assets for the SimpleSAMLphp main repository", "support": { "issues": "https://github.com/simplesamlphp/simplesamlphp-assets-base/issues", - "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.9" + "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.11" }, - "time": "2025-03-02T17:54:55+00:00" + "time": "2025-09-18T17:06:32+00:00" }, { "name": "simplesamlphp/xml-common", - "version": "v1.25.0", + "version": "v1.25.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-common.git", - "reference": "2250c05aa0062bba4baad9d2357e94f9aa10ffc0" + "reference": "999603aa521d91e17b562bb0b498513af80eb190" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/2250c05aa0062bba4baad9d2357e94f9aa10ffc0", - "reference": "2250c05aa0062bba4baad9d2357e94f9aa10ffc0", + "url": "https://api.github.com/repos/simplesamlphp/xml-common/zipball/999603aa521d91e17b562bb0b498513af80eb190", + "reference": "999603aa521d91e17b562bb0b498513af80eb190", "shasum": "" }, "require": { @@ -1044,6 +1087,7 @@ "ext-spl": "*", "php": "^8.1", "simplesamlphp/assert": "~1.8.1", + "simplesamlphp/composer-xmlprovider-installer": "~1.0.2", "symfony/finder": "~6.4.0" }, "require-dev": { @@ -1079,20 +1123,20 @@ "issues": "https://github.com/simplesamlphp/xml-common/issues", "source": "https://github.com/simplesamlphp/xml-common" }, - "time": "2025-06-02T21:40:38+00:00" + "time": "2025-06-29T13:05:44+00:00" }, { "name": "simplesamlphp/xml-security", - "version": "v1.13.2", + "version": "v1.13.7", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "a7f2e09632da1179ecb9a021c3c2fbcbcd28071a" + "reference": "f6f32a3c2c6b398408d5bccc9d59445edc1cb67d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/a7f2e09632da1179ecb9a021c3c2fbcbcd28071a", - "reference": "a7f2e09632da1179ecb9a021c3c2fbcbcd28071a", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/f6f32a3c2c6b398408d5bccc9d59445edc1cb67d", + "reference": "f6f32a3c2c6b398408d5bccc9d59445edc1cb67d", "shasum": "" }, "require": { @@ -1141,22 +1185,22 @@ ], "support": { "issues": "https://github.com/simplesamlphp/xml-security/issues", - "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.2" + "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.7" }, - "time": "2025-06-04T21:49:04+00:00" + "time": "2025-06-29T13:07:27+00:00" }, { "name": "symfony/cache", - "version": "v6.4.21", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "d1abcf763a7414f2e572f676f22da7a06c8cd9ee" + "reference": "66c853ddcbf85c1984169869be498c3e7597b367" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/d1abcf763a7414f2e572f676f22da7a06c8cd9ee", - "reference": "d1abcf763a7414f2e572f676f22da7a06c8cd9ee", + "url": "https://api.github.com/repos/symfony/cache/zipball/66c853ddcbf85c1984169869be498c3e7597b367", + "reference": "66c853ddcbf85c1984169869be498c3e7597b367", "shasum": "" }, "require": { @@ -1223,7 +1267,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.21" + "source": "https://github.com/symfony/cache/tree/v6.4.26" }, "funding": [ { @@ -1234,12 +1278,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-08T08:21:20+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/cache-contracts", @@ -1319,16 +1367,16 @@ }, { "name": "symfony/config", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7" + "reference": "f18dc5926cb203e125956987def795d052ee774e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/af5917a3b1571f54689e56677a3f06440d2fe4c7", - "reference": "af5917a3b1571f54689e56677a3f06440d2fe4c7", + "url": "https://api.github.com/repos/symfony/config/zipball/f18dc5926cb203e125956987def795d052ee774e", + "reference": "f18dc5926cb203e125956987def795d052ee774e", "shasum": "" }, "require": { @@ -1374,7 +1422,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.22" + "source": "https://github.com/symfony/config/tree/v6.4.26" }, "funding": [ { @@ -1385,25 +1433,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-14T06:00:01+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/console", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "7d29659bc3c9d8e9a34e2c3414ef9e9e003e6cf3" + "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/7d29659bc3c9d8e9a34e2c3414ef9e9e003e6cf3", - "reference": "7d29659bc3c9d8e9a34e2c3414ef9e9e003e6cf3", + "url": "https://api.github.com/repos/symfony/console/zipball/492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f", + "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f", "shasum": "" }, "require": { @@ -1468,7 +1520,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.22" + "source": "https://github.com/symfony/console/tree/v6.4.26" }, "funding": [ { @@ -1479,25 +1531,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-07T07:05:04+00:00" + "time": "2025-09-26T12:13:46+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "8cb11f833d1f5bfbb2df97dfc23c92b4d42c18d9" + "reference": "5f311eaf0b321f8ec640f6bae12da43a14026898" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8cb11f833d1f5bfbb2df97dfc23c92b4d42c18d9", - "reference": "8cb11f833d1f5bfbb2df97dfc23c92b4d42c18d9", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5f311eaf0b321f8ec640f6bae12da43a14026898", + "reference": "5f311eaf0b321f8ec640f6bae12da43a14026898", "shasum": "" }, "require": { @@ -1549,7 +1605,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.22" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.26" }, "funding": [ { @@ -1560,12 +1616,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-17T07:35:26+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1636,16 +1696,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1" + "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/ce765a2d28b3cce61de1fb916e207767a73171d1", - "reference": "ce765a2d28b3cce61de1fb916e207767a73171d1", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/41bedcaec5b72640b0ec2096547b75fda72ead6c", + "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c", "shasum": "" }, "require": { @@ -1691,7 +1751,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.22" + "source": "https://github.com/symfony/error-handler/tree/v6.4.26" }, "funding": [ { @@ -1702,25 +1762,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-28T12:00:15+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.13", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e" + "reference": "b0cf3162020603587363f0551cd3be43958611ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", - "reference": "0ffc48080ab3e9132ea74ef4e09d8dcf26bf897e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b0cf3162020603587363f0551cd3be43958611ff", + "reference": "b0cf3162020603587363f0551cd3be43958611ff", "shasum": "" }, "require": { @@ -1771,7 +1835,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/v6.4.13" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.25" }, "funding": [ { @@ -1782,12 +1846,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-08-13T09:41:44+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -1867,16 +1935,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.13", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3" + "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/4856c9cf585d5a0313d8d35afd681a526f038dd3", - "reference": "4856c9cf585d5a0313d8d35afd681a526f038dd3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", + "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", "shasum": "" }, "require": { @@ -1913,7 +1981,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.13" + "source": "https://github.com/symfony/filesystem/tree/v6.4.24" }, "funding": [ { @@ -1924,25 +1992,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-10-25T15:07:50+00:00" + "time": "2025-07-10T08:14:14+00:00" }, { "name": "symfony/finder", - "version": "v6.4.17", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7" + "reference": "73089124388c8510efb8d2d1689285d285937b08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", - "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7", + "url": "https://api.github.com/repos/symfony/finder/zipball/73089124388c8510efb8d2d1689285d285937b08", + "reference": "73089124388c8510efb8d2d1689285d285937b08", "shasum": "" }, "require": { @@ -1977,7 +2049,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.17" + "source": "https://github.com/symfony/finder/tree/v6.4.24" }, "funding": [ { @@ -1988,25 +2060,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-12-29T13:51:37+00:00" + "time": "2025-07-15T12:02:45+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "b1de19b2083484d0ce945977f6c6484e9e493a2e" + "reference": "e16f6ddaf8f026d5f3323f3bbc0660654ccdd837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/b1de19b2083484d0ce945977f6c6484e9e493a2e", - "reference": "b1de19b2083484d0ce945977f6c6484e9e493a2e", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e16f6ddaf8f026d5f3323f3bbc0660654ccdd837", + "reference": "e16f6ddaf8f026d5f3323f3bbc0660654ccdd837", "shasum": "" }, "require": { @@ -2126,7 +2202,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.22" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.26" }, "funding": [ { @@ -2137,25 +2213,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-14T07:14:36+00:00" + "time": "2025-09-16T07:32:45+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "6b7c97fe1ddac8df3cc9ba6410c8abc683e148ae" + "reference": "369241591d92bb5dfb4c6ccd6ee94378a45b1521" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6b7c97fe1ddac8df3cc9ba6410c8abc683e148ae", - "reference": "6b7c97fe1ddac8df3cc9ba6410c8abc683e148ae", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/369241591d92bb5dfb4c6ccd6ee94378a45b1521", + "reference": "369241591d92bb5dfb4c6ccd6ee94378a45b1521", "shasum": "" }, "require": { @@ -2203,7 +2283,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.22" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.26" }, "funding": [ { @@ -2214,25 +2294,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-11T15:36:20+00:00" + "time": "2025-09-16T08:22:30+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "15c105b839a7cfa1bc0989c091bfb6477f23b673" + "reference": "8b0f963293aede77593c9845c8c0af34752e893a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/15c105b839a7cfa1bc0989c091bfb6477f23b673", - "reference": "15c105b839a7cfa1bc0989c091bfb6477f23b673", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8b0f963293aede77593c9845c8c0af34752e893a", + "reference": "8b0f963293aede77593c9845c8c0af34752e893a", "shasum": "" }, "require": { @@ -2317,7 +2401,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.22" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.26" }, "funding": [ { @@ -2328,25 +2412,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-29T07:23:40+00:00" + "time": "2025-09-27T12:20:56+00:00" }, { "name": "symfony/intl", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "aaecb52f18a6f95766a239ca0a6cc0df983d92cc" + "reference": "0cd11e99e8c505f7ee7c6f0ccc8bccb8e14e652f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/aaecb52f18a6f95766a239ca0a6cc0df983d92cc", - "reference": "aaecb52f18a6f95766a239ca0a6cc0df983d92cc", + "url": "https://api.github.com/repos/symfony/intl/zipball/0cd11e99e8c505f7ee7c6f0ccc8bccb8e14e652f", + "reference": "0cd11e99e8c505f7ee7c6f0ccc8bccb8e14e652f", "shasum": "" }, "require": { @@ -2400,7 +2488,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.22" + "source": "https://github.com/symfony/intl/tree/v6.4.26" }, "funding": [ { @@ -2411,25 +2499,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-04T12:02:38+00:00" + "time": "2025-09-07T21:26:26+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.4.13", + "version": "v6.4.24", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47" + "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/e97a1b31f60b8bdfc1fdedab4398538da9441d47", - "reference": "e97a1b31f60b8bdfc1fdedab4398538da9441d47", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/dcab5ac87450aaed26483ba49c2ce86808da7557", + "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557", "shasum": "" }, "require": { @@ -2472,7 +2564,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.4.13" + "source": "https://github.com/symfony/password-hasher/tree/v6.4.24" }, "funding": [ { @@ -2483,16 +2575,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-07-10T08:14:14+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -2551,7 +2647,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -2562,6 +2658,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2571,16 +2671,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -2629,7 +2729,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -2640,25 +2740,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "763d2a91fea5681509ca01acbc1c5e450d127811" + "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/763d2a91fea5681509ca01acbc1c5e450d127811", - "reference": "763d2a91fea5681509ca01acbc1c5e450d127811", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c", + "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c", "shasum": "" }, "require": { @@ -2713,7 +2817,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.33.0" }, "funding": [ { @@ -2724,16 +2828,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-12-21T18:38:29+00:00" + "time": "2025-06-20T22:24:30+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2794,7 +2902,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -2805,6 +2913,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2814,7 +2926,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -2875,7 +2987,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -2886,6 +2998,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -2895,16 +3011,16 @@ }, { "name": "symfony/polyfill-php83", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", "shasum": "" }, "require": { @@ -2951,7 +3067,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" }, "funding": [ { @@ -2962,25 +3078,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-07-08T02:45:35+00:00" }, { "name": "symfony/routing", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670" + "reference": "6fc4c445f22857d4b8b40a02b73f423ddab295de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/1f5234e8457164a3a0038a4c0a4ba27876a9c670", - "reference": "1f5234e8457164a3a0038a4c0a4ba27876a9c670", + "url": "https://api.github.com/repos/symfony/routing/zipball/6fc4c445f22857d4b8b40a02b73f423ddab295de", + "reference": "6fc4c445f22857d4b8b40a02b73f423ddab295de", "shasum": "" }, "require": { @@ -3034,7 +3154,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.22" + "source": "https://github.com/symfony/routing/tree/v6.4.26" }, "funding": [ { @@ -3045,12 +3165,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-27T16:08:38+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/service-contracts", @@ -3137,16 +3261,16 @@ }, { "name": "symfony/string", - "version": "v6.4.21", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" + "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", + "url": "https://api.github.com/repos/symfony/string/zipball/5621f039a71a11c87c106c1c598bdcd04a19aeea", + "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea", "shasum": "" }, "require": { @@ -3160,7 +3284,6 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/error-handler": "^5.4|^6.0|^7.0", "symfony/http-client": "^5.4|^6.0|^7.0", "symfony/intl": "^6.2|^7.0", "symfony/translation-contracts": "^2.5|^3.0", @@ -3203,7 +3326,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.21" + "source": "https://github.com/symfony/string/tree/v6.4.26" }, "funding": [ { @@ -3214,12 +3337,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-18T15:23:29+00:00" + "time": "2025-09-11T14:32:46+00:00" }, { "name": "symfony/translation-contracts", @@ -3301,16 +3428,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.22", + "version": "v6.4.25", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "04ab306a2f2c9dbd46f4363383812954f704af9d" + "reference": "9d13e87591c9de3221c8d6f23cd9a2b5958607bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/04ab306a2f2c9dbd46f4363383812954f704af9d", - "reference": "04ab306a2f2c9dbd46f4363383812954f704af9d", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9d13e87591c9de3221c8d6f23cd9a2b5958607bf", + "reference": "9d13e87591c9de3221c8d6f23cd9a2b5958607bf", "shasum": "" }, "require": { @@ -3390,7 +3517,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.22" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.25" }, "funding": [ { @@ -3401,25 +3528,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-16T08:23:44+00:00" + "time": "2025-08-13T09:41:44+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.21", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5" + "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", - "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfae1497a2f1eaad78dbc0590311c599c7178d4a", + "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a", "shasum": "" }, "require": { @@ -3431,7 +3562,6 @@ "symfony/console": "<5.4" }, "require-dev": { - "ext-iconv": "*", "symfony/console": "^5.4|^6.0|^7.0", "symfony/error-handler": "^6.3|^7.0", "symfony/http-kernel": "^5.4|^6.0|^7.0", @@ -3475,7 +3605,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.21" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.26" }, "funding": [ { @@ -3486,25 +3616,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-09T07:34:50+00:00" + "time": "2025-09-25T15:37:27+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9" + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f28cf841f5654955c9f88ceaf4b9dc29571988a9", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/466fcac5fa2e871f83d31173f80e9c2684743bfc", + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc", "shasum": "" }, "require": { @@ -3552,7 +3686,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.22" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.26" }, "funding": [ { @@ -3563,25 +3697,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-14T13:00:13+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.21", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e" + "reference": "0fc8b966fd0dcaab544ae59bfc3a433f048c17b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/f01987f45676778b474468aa266fe2eda1f2bc7e", - "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0fc8b966fd0dcaab544ae59bfc3a433f048c17b0", + "reference": "0fc8b966fd0dcaab544ae59bfc3a433f048c17b0", "shasum": "" }, "require": { @@ -3624,7 +3762,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.21" + "source": "https://github.com/symfony/yaml/tree/v6.4.26" }, "funding": [ { @@ -3635,12 +3773,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-04T09:48:44+00:00" + "time": "2025-09-26T15:07:38+00:00" }, { "name": "twig/intl-extra", @@ -3847,28 +3989,28 @@ "packages-dev": [ { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.0.0", + "version": "v1.1.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "4be43904336affa5c2f70744a348312336afd0da" + "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", - "reference": "4be43904336affa5c2f70744a348312336afd0da", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1", + "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0 || ^2.0", + "composer-plugin-api": "^2.2", "php": ">=5.4", "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" }, "require-dev": { - "composer/composer": "*", + "composer/composer": "^2.2", "ext-json": "*", "ext-zip": "*", - "php-parallel-lint/php-parallel-lint": "^1.3.1", + "php-parallel-lint/php-parallel-lint": "^1.4.0", "phpcompatibility/php-compatibility": "^9.0", "yoast/phpunit-polyfills": "^1.0" }, @@ -3888,9 +4030,9 @@ "authors": [ { "name": "Franck Nijhof", - "email": "franck.nijhof@dealerdirect.com", - "homepage": "http://www.frenck.nl", - "role": "Developer / IT Manager" + "email": "opensource@frenck.dev", + "homepage": "https://frenck.dev", + "role": "Open source developer" }, { "name": "Contributors", @@ -3898,7 +4040,6 @@ } ], "description": "PHP_CodeSniffer Standards Composer Installer Plugin", - "homepage": "http://www.dealerdirect.com", "keywords": [ "PHPCodeSniffer", "PHP_CodeSniffer", @@ -3919,9 +4060,28 @@ ], "support": { "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "security": "https://github.com/PHPCSStandards/composer-installer/security/policy", "source": "https://github.com/PHPCSStandards/composer-installer" }, - "time": "2023-01-05T11:28:13+00:00" + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + }, + { + "url": "https://thanks.dev/u/gh/phpcsstandards", + "type": "thanks_dev" + } + ], + "time": "2025-07-17T20:45:56+00:00" }, { "name": "gettext/php-scanner", @@ -4036,16 +4196,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.1", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c", - "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -4084,7 +4244,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -4092,7 +4252,7 @@ "type": "tidelift" } ], - "time": "2025-04-29T12:36:36+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "nikic/php-parser", @@ -4318,16 +4478,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.1.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68" + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", - "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", "shasum": "" }, "require": { @@ -4359,22 +4519,17 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" }, - "time": "2025-02-19T13:28:12+00:00" + "time": "2025-08-30T15:50:23+00:00" }, { "name": "phpstan/phpstan", - "version": "1.12.27", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162" - }, + "version": "1.12.32", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3a6e423c076ab39dfedc307e2ac627ef579db162", - "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2770dcdf5078d0b0d53f94317e06affe88419aa8", + "reference": "2770dcdf5078d0b0d53f94317e06affe88419aa8", "shasum": "" }, "require": { @@ -4419,7 +4574,7 @@ "type": "github" } ], - "time": "2025-05-21T20:51:45+00:00" + "time": "2025-09-30T10:16:31+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -4794,16 +4949,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.46", + "version": "10.5.58", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8080be387a5be380dda48c6f41cee4a13aadab3d" + "reference": "e24fb46da450d8e6a5788670513c1af1424f16ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8080be387a5be380dda48c6f41cee4a13aadab3d", - "reference": "8080be387a5be380dda48c6f41cee4a13aadab3d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e24fb46da450d8e6a5788670513c1af1424f16ca", + "reference": "e24fb46da450d8e6a5788670513c1af1424f16ca", "shasum": "" }, "require": { @@ -4813,7 +4968,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.1", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.1", @@ -4824,13 +4979,13 @@ "phpunit/php-timer": "^6.0.0", "sebastian/cli-parser": "^2.0.1", "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.3", + "sebastian/comparator": "^5.0.4", "sebastian/diff": "^5.1.1", "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.2", + "sebastian/exporter": "^5.1.4", "sebastian/global-state": "^6.0.2", "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.0", + "sebastian/recursion-context": "^5.0.1", "sebastian/type": "^4.0.0", "sebastian/version": "^4.0.1" }, @@ -4875,7 +5030,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.46" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.58" }, "funding": [ { @@ -4899,7 +5054,7 @@ "type": "tidelift" } ], - "time": "2025-05-02T06:46:24+00:00" + "time": "2025-09-28T12:04:46+00:00" }, { "name": "predis/predis", @@ -5133,16 +5288,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.3", + "version": "5.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e" + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", - "reference": "a18251eb0b7a2dcd2f7aa3d6078b18545ef0558e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e8e53097718d2b53cfb2aa859b06a41abf58c62e", + "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e", "shasum": "" }, "require": { @@ -5198,15 +5353,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2024-10-18T14:56:07+00:00" + "time": "2025-09-07T05:25:07+00:00" }, { "name": "sebastian/complexity", @@ -5399,16 +5566,16 @@ }, { "name": "sebastian/exporter", - "version": "5.1.2", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + "reference": "0735b90f4da94969541dac1da743446e276defa6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", - "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6", + "reference": "0735b90f4da94969541dac1da743446e276defa6", "shasum": "" }, "require": { @@ -5417,7 +5584,7 @@ "sebastian/recursion-context": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -5465,15 +5632,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T07:17:12+00:00" + "time": "2025-09-24T06:09:11+00:00" }, { "name": "sebastian/global-state", @@ -5709,23 +5888,23 @@ }, { "name": "sebastian/recursion-context", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", - "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", + "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^10.0" + "phpunit/phpunit": "^10.5" }, "type": "library", "extra": { @@ -5760,15 +5939,28 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T07:05:40+00:00" + "time": "2025-08-10T07:50:56+00:00" }, { "name": "sebastian/type", @@ -5881,16 +6073,16 @@ }, { "name": "simplesamlphp/saml2-legacy", - "version": "v4.18.1", + "version": "v4.19.0", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2-legacy.git", - "reference": "9bbf43a5ace9c8e5107dad3a613b014b456ecd56" + "reference": "96eb144356702d7d913078fb2e4364e42458fc31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/9bbf43a5ace9c8e5107dad3a613b014b456ecd56", - "reference": "9bbf43a5ace9c8e5107dad3a613b014b456ecd56", + "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/96eb144356702d7d913078fb2e4364e42458fc31", + "reference": "96eb144356702d7d913078fb2e4364e42458fc31", "shasum": "" }, "require": { @@ -5935,9 +6127,9 @@ ], "description": "SAML2 PHP library from SimpleSAMLphp", "support": { - "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.18.1" + "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.19.0" }, - "time": "2025-03-16T11:50:02+00:00" + "time": "2025-09-05T23:39:13+00:00" }, { "name": "simplesamlphp/simplesamlphp-module-adfs", @@ -6001,16 +6193,16 @@ }, { "name": "simplesamlphp/simplesamlphp-test-framework", - "version": "v1.9.2", + "version": "v1.9.3", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-test-framework.git", - "reference": "b8506d7b59c658ff4bb9bdd301bf24d1635019d1" + "reference": "8dd14bb338573710165e6c237ec36378fa18eadb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/b8506d7b59c658ff4bb9bdd301bf24d1635019d1", - "reference": "b8506d7b59c658ff4bb9bdd301bf24d1635019d1", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-test-framework/zipball/8dd14bb338573710165e6c237ec36378fa18eadb", + "reference": "8dd14bb338573710165e6c237ec36378fa18eadb", "shasum": "" }, "require": { @@ -6025,7 +6217,7 @@ "symfony/phpunit-bridge": "^6.4 || ^7.0" }, "require-dev": { - "simplesamlphp/simplesamlphp": "^2.2" + "simplesamlphp/simplesamlphp": "^2.4" }, "type": "project", "autoload": { @@ -6051,36 +6243,36 @@ "issues": "https://github.com/simplesamlphp/simplesamlphp-test-framework/issues", "source": "https://github.com/simplesamlphp/simplesamlphp-test-framework" }, - "time": "2025-04-07T20:08:55+00:00" + "time": "2025-07-14T17:03:27+00:00" }, { "name": "slevomat/coding-standard", - "version": "8.19.1", + "version": "8.24.0", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "458d665acd49009efebd7e0cb385d71ae9ac3220" + "reference": "08e7989c0351f3f38b82172838195c35d9819efa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/458d665acd49009efebd7e0cb385d71ae9ac3220", - "reference": "458d665acd49009efebd7e0cb385d71ae9ac3220", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/08e7989c0351f3f38b82172838195c35d9819efa", + "reference": "08e7989c0351f3f38b82172838195c35d9819efa", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.1.2", "php": "^7.4 || ^8.0", - "phpstan/phpdoc-parser": "^2.1.0", - "squizlabs/php_codesniffer": "^3.13.0" + "phpstan/phpdoc-parser": "^2.3.0", + "squizlabs/php_codesniffer": "^4.0.0" }, "require-dev": { - "phing/phing": "3.0.1", + "phing/phing": "3.0.1|3.1.0", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.17", + "phpstan/phpstan": "2.1.29", "phpstan/phpstan-deprecation-rules": "2.0.3", - "phpstan/phpstan-phpunit": "2.0.6", - "phpstan/phpstan-strict-rules": "2.0.4", - "phpunit/phpunit": "9.6.8|10.5.45|11.4.4|11.5.21|12.1.3" + "phpstan/phpstan-phpunit": "2.0.7", + "phpstan/phpstan-strict-rules": "2.0.6", + "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.3.14" }, "type": "phpcodesniffer-standard", "extra": { @@ -6104,7 +6296,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.19.1" + "source": "https://github.com/slevomat/coding-standard/tree/8.24.0" }, "funding": [ { @@ -6116,41 +6308,36 @@ "type": "tidelift" } ], - "time": "2025-06-09T17:53:57+00:00" + "time": "2025-09-25T21:37:40+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.13.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "1b71b4dd7e7ef651ac749cea67e513c0c832f4bd" + "reference": "06113cfdaf117fc2165f9cd040bd0f17fcd5242d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/1b71b4dd7e7ef651ac749cea67e513c0c832f4bd", - "reference": "1b71b4dd7e7ef651ac749cea67e513c0c832f4bd", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/06113cfdaf117fc2165f9cd040bd0f17fcd5242d", + "reference": "06113cfdaf117fc2165f9cd040bd0f17fcd5242d", "shasum": "" }, "require": { "ext-simplexml": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": ">=5.4.0" + "php": ">=7.2.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + "phpunit/phpunit": "^8.4.0 || ^9.3.4 || ^10.5.32 || 11.3.3 - 11.5.28 || ^11.5.31" }, "bin": [ "bin/phpcbf", "bin/phpcs" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" @@ -6169,7 +6356,7 @@ "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "description": "PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.", "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "keywords": [ "phpcs", @@ -6200,20 +6387,20 @@ "type": "thanks_dev" } ], - "time": "2025-06-12T15:04:34+00:00" + "time": "2025-09-15T11:28:58+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v7.3.0", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "2eabda563921f21cbce1d1e3247b3c36568905e6" + "reference": "ed77a629c13979e051b7000a317966474d566398" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2eabda563921f21cbce1d1e3247b3c36568905e6", - "reference": "2eabda563921f21cbce1d1e3247b3c36568905e6", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/ed77a629c13979e051b7000a317966474d566398", + "reference": "ed77a629c13979e051b7000a317966474d566398", "shasum": "" }, "require": { @@ -6265,8 +6452,11 @@ ], "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", + "keywords": [ + "testing" + ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.3.0" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.3.4" }, "funding": [ { @@ -6277,25 +6467,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-23T07:26:30+00:00" + "time": "2025-09-12T12:18:52+00:00" }, { "name": "symfony/translation", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "7e3b3b7146c6fab36ddff304a8041174bf6e17ad" + "reference": "c8559fe25c7ee7aa9d28f228903a46db008156a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/7e3b3b7146c6fab36ddff304a8041174bf6e17ad", - "reference": "7e3b3b7146c6fab36ddff304a8041174bf6e17ad", + "url": "https://api.github.com/repos/symfony/translation/zipball/c8559fe25c7ee7aa9d28f228903a46db008156a4", + "reference": "c8559fe25c7ee7aa9d28f228903a46db008156a4", "shasum": "" }, "require": { @@ -6361,7 +6555,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.22" + "source": "https://github.com/symfony/translation/tree/v6.4.26" }, "funding": [ { @@ -6372,12 +6566,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-29T07:06:44+00:00" + "time": "2025-09-05T18:17:25+00:00" }, { "name": "theseer/tokenizer", From 2cfd71fb4bb683ab8e35b8d30ec1eb4412d16287 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Sun, 5 Oct 2025 15:17:42 +0200 Subject: [PATCH 88/93] Fix CI --- phpcs.xml | 1 + psalm.xml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/phpcs.xml b/phpcs.xml index ec365ed6ac..9b5cdd9011 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -31,6 +31,7 @@ tests/src/SimpleSAML/Metadata/MetaDataStorageSourceTest.php tests/src/SimpleSAML/Metadata/SAMLParserTest.php + tests/src/SimpleSAML/Utils/HTTPTest.php tests/modules/saml/src/Controller/ServiceProviderTest.php diff --git a/psalm.xml b/psalm.xml index d1116b67dd..1fa1b3660c 100644 --- a/psalm.xml +++ b/psalm.xml @@ -78,7 +78,6 @@ - From 2a1338c60f01c076cd254146b4fd8b39d08b3a14 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Sun, 5 Oct 2025 15:19:15 +0200 Subject: [PATCH 89/93] Release 2.3.9 --- composer.json | 2 +- composer.lock | 2 +- docs/simplesamlphp-changelog.md | 8 +++++++- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index b98fd5154d..7a2dba587b 100644 --- a/composer.json +++ b/composer.json @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.8" + "version": "v2.3.9" } diff --git a/composer.lock b/composer.lock index 99b6612bd2..0476ab51ac 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "68a1204034bca5148f9a4eb08c1a013c", + "content-hash": "1c542a41895188d7f62c695353926ce8", "packages": [ { "name": "gettext/gettext", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 5a7acfeca4..96eb4d77ec 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,14 +5,20 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.9 +## Version 2.3.10 Released TBD +## Version 2.3.9 + +Released 2025-10-05 + * Fix auth state AuthnInstant (#2478) * Allow "Secure" cookie attribute via HTTP on localhost (#2483) * Fix override over errorURL * Fix FontAwesome icon names (#2509) +* Prevent emulation of SQL prepare-statements +* Remove double directory separator; \SimpleSAML\Configuration::getBasedir always ends with one `authorize` diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index 69e010555b..070bf637ef 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.8 +%define version 2.3.9 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 0158c319e8..2cbc136fd7 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.8'; + public const VERSION = '2.3.9'; /** * A default value which means that the given option is required. From a109b59ef9f0cef7cb9133b28039a86c12cd6875 Mon Sep 17 00:00:00 2001 From: Guy Halse Date: Mon, 17 Nov 2025 23:49:33 +0200 Subject: [PATCH 90/93] store.redis.tls should apply to sentinels (#2557) --- docs/simplesamlphp-changelog.md | 2 ++ src/SimpleSAML/Store/RedisStore.php | 1 + 2 files changed, 3 insertions(+) diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index 96eb4d77ec..d8b31af5a1 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -9,6 +9,8 @@ See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgr Released TBD +* store.redis.tls should apply to sentinels (#2557) + ## Version 2.3.9 Released 2025-10-05 diff --git a/src/SimpleSAML/Store/RedisStore.php b/src/SimpleSAML/Store/RedisStore.php index 3dab9bfa54..41e3c2e71a 100644 --- a/src/SimpleSAML/Store/RedisStore.php +++ b/src/SimpleSAML/Store/RedisStore.php @@ -98,6 +98,7 @@ public function __construct(?Client $redis = null) 'service' => $mastergroup, 'prefix' => $prefix, 'parameters' => [ + 'scheme' => $scheme, 'database' => $database, ] + (!empty($ssl) ? ['ssl' => $ssl] : []) From 7432dd0dcedfee78e8ddc97547f7dc20a925c989 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 8 Dec 2025 13:38:50 +0100 Subject: [PATCH 91/93] Release v2.3.10 --- composer.json | 4 +- composer.lock | 458 +++++++++++++++---------------- docs/simplesamlphp-changelog.md | 8 +- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 5 files changed, 239 insertions(+), 235 deletions(-) diff --git a/composer.json b/composer.json index 7a2dba587b..de43109843 100644 --- a/composer.json +++ b/composer.json @@ -63,7 +63,7 @@ "psr/log": "^3.0", "simplesamlphp/assert": "^1.1", "simplesamlphp/composer-module-installer": "~1.3.6", - "simplesamlphp/saml2": "^4.17", + "simplesamlphp/saml2": "^4.19.1", "simplesamlphp/simplesamlphp-assets-base": "~2.3.0", "simplesamlphp/xml-security": "^1.7", "symfony/cache": "^6.4", @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.9" + "version": "v2.3.10" } diff --git a/composer.lock b/composer.lock index 0476ab51ac..43827994c7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1c542a41895188d7f62c695353926ce8", + "content-hash": "742a2645ce7064669e2d536dc7a62b42", "packages": [ { "name": "gettext/gettext", @@ -347,16 +347,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.11.1", + "version": "v6.12.0", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "d9e3b36b47f04b497a0164c5a20f92acb4593284" + "reference": "d1ac35d784bf9f5e61b424901d5a014967f15b12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/d9e3b36b47f04b497a0164c5a20f92acb4593284", - "reference": "d9e3b36b47f04b497a0164c5a20f92acb4593284", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/d1ac35d784bf9f5e61b424901d5a014967f15b12", + "reference": "d1ac35d784bf9f5e61b424901d5a014967f15b12", "shasum": "" }, "require": { @@ -377,7 +377,6 @@ }, "suggest": { "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", - "ext-imap": "Needed to support advanced email address parsing according to RFC822", "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", "ext-openssl": "Needed for secure SMTP sending and DKIM signing", "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", @@ -417,7 +416,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.11.1" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.12.0" }, "funding": [ { @@ -425,7 +424,7 @@ "type": "github" } ], - "time": "2025-09-30T11:54:53+00:00" + "time": "2025-10-15T16:49:08+00:00" }, { "name": "psr/cache", @@ -783,16 +782,16 @@ }, { "name": "robrichards/xmlseclibs", - "version": "3.1.3", + "version": "3.1.4", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07" + "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/2bdfd742624d739dfadbd415f00181b4a77aaf07", - "reference": "2bdfd742624d739dfadbd415f00181b4a77aaf07", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/bc87389224c6de95802b505e5265b0ec2c5bcdbd", + "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd", "shasum": "" }, "require": { @@ -819,22 +818,22 @@ ], "support": { "issues": "https://github.com/robrichards/xmlseclibs/issues", - "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.3" + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.4" }, - "time": "2024-11-20T21:13:56+00:00" + "time": "2025-12-08T11:57:53+00:00" }, { "name": "simplesamlphp/assert", - "version": "v1.8.2", + "version": "v1.8.3", "source": { "type": "git", "url": "https://github.com/simplesamlphp/assert.git", - "reference": "b551f50399540172f387d97b2e7246e6c352154d" + "reference": "01b4e706daafb109e9fabbf3b4497d2f4dada035" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/b551f50399540172f387d97b2e7246e6c352154d", - "reference": "b551f50399540172f387d97b2e7246e6c352154d", + "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/01b4e706daafb109e9fabbf3b4497d2f4dada035", + "reference": "01b4e706daafb109e9fabbf3b4497d2f4dada035", "shasum": "" }, "require": { @@ -878,9 +877,9 @@ "description": "A wrapper around webmozart/assert to make it useful beyond checking method arguments", "support": { "issues": "https://github.com/simplesamlphp/assert/issues", - "source": "https://github.com/simplesamlphp/assert/tree/v1.8.2" + "source": "https://github.com/simplesamlphp/assert/tree/v1.8.3" }, - "time": "2025-06-28T12:57:30+00:00" + "time": "2025-10-28T16:40:50+00:00" }, { "name": "simplesamlphp/composer-module-installer", @@ -969,16 +968,16 @@ }, { "name": "simplesamlphp/saml2", - "version": "v4.19.0", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "a1e25f1351591c2b007449735c0e62e016696576" + "reference": "e928cffd4ede7f066189e05680aecb07e88aefad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/a1e25f1351591c2b007449735c0e62e016696576", - "reference": "a1e25f1351591c2b007449735c0e62e016696576", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/e928cffd4ede7f066189e05680aecb07e88aefad", + "reference": "e928cffd4ede7f066189e05680aecb07e88aefad", "shasum": "" }, "require": { @@ -987,7 +986,7 @@ "ext-zlib": "*", "php": ">=7.1 || ^8.0", "psr/log": "~1.1 || ^2.0 || ^3.0", - "robrichards/xmlseclibs": "^3.1.1", + "robrichards/xmlseclibs": "^3.1.4", "webmozart/assert": "^1.9" }, "conflict": { @@ -1024,22 +1023,22 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.19.0" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.19.1" }, - "time": "2025-09-05T23:47:51+00:00" + "time": "2025-12-08T12:04:12+00:00" }, { "name": "simplesamlphp/simplesamlphp-assets-base", - "version": "v2.3.11", + "version": "v2.3.12", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-assets-base.git", - "reference": "c852ea06c436222ec3e942122d4cec9f8661ba70" + "reference": "1bac98af2f28fe52c53567785155066291505dbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/c852ea06c436222ec3e942122d4cec9f8661ba70", - "reference": "c852ea06c436222ec3e942122d4cec9f8661ba70", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/1bac98af2f28fe52c53567785155066291505dbb", + "reference": "1bac98af2f28fe52c53567785155066291505dbb", "shasum": "" }, "require": { @@ -1060,9 +1059,9 @@ "description": "Assets for the SimpleSAMLphp main repository", "support": { "issues": "https://github.com/simplesamlphp/simplesamlphp-assets-base/issues", - "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.11" + "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.12" }, - "time": "2025-09-18T17:06:32+00:00" + "time": "2025-11-23T01:31:20+00:00" }, { "name": "simplesamlphp/xml-common", @@ -1127,16 +1126,16 @@ }, { "name": "simplesamlphp/xml-security", - "version": "v1.13.7", + "version": "v1.13.8", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "f6f32a3c2c6b398408d5bccc9d59445edc1cb67d" + "reference": "5e9c726889676911a499b44e15046227015a4947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/f6f32a3c2c6b398408d5bccc9d59445edc1cb67d", - "reference": "f6f32a3c2c6b398408d5bccc9d59445edc1cb67d", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/5e9c726889676911a499b44e15046227015a4947", + "reference": "5e9c726889676911a499b44e15046227015a4947", "shasum": "" }, "require": { @@ -1185,22 +1184,22 @@ ], "support": { "issues": "https://github.com/simplesamlphp/xml-security/issues", - "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.7" + "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.8" }, - "time": "2025-06-29T13:07:27+00:00" + "time": "2025-12-08T12:08:30+00:00" }, { "name": "symfony/cache", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "66c853ddcbf85c1984169869be498c3e7597b367" + "reference": "eb3272ed2daed13ed24816e862d73f73d995972a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/66c853ddcbf85c1984169869be498c3e7597b367", - "reference": "66c853ddcbf85c1984169869be498c3e7597b367", + "url": "https://api.github.com/repos/symfony/cache/zipball/eb3272ed2daed13ed24816e862d73f73d995972a", + "reference": "eb3272ed2daed13ed24816e862d73f73d995972a", "shasum": "" }, "require": { @@ -1267,7 +1266,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.26" + "source": "https://github.com/symfony/cache/tree/v6.4.30" }, "funding": [ { @@ -1287,7 +1286,7 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2025-12-01T16:41:59+00:00" }, { "name": "symfony/cache-contracts", @@ -1367,16 +1366,16 @@ }, { "name": "symfony/config", - "version": "v6.4.26", + "version": "v6.4.28", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "f18dc5926cb203e125956987def795d052ee774e" + "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/f18dc5926cb203e125956987def795d052ee774e", - "reference": "f18dc5926cb203e125956987def795d052ee774e", + "url": "https://api.github.com/repos/symfony/config/zipball/15947c18ef3ddb0b2f4ec936b9e90e2520979f62", + "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62", "shasum": "" }, "require": { @@ -1422,7 +1421,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.26" + "source": "https://github.com/symfony/config/tree/v6.4.28" }, "funding": [ { @@ -1442,20 +1441,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2025-11-01T19:52:02+00:00" }, { "name": "symfony/console", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f" + "reference": "1b2813049506b39eb3d7e64aff033fd5ca26c97e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f", - "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f", + "url": "https://api.github.com/repos/symfony/console/zipball/1b2813049506b39eb3d7e64aff033fd5ca26c97e", + "reference": "1b2813049506b39eb3d7e64aff033fd5ca26c97e", "shasum": "" }, "require": { @@ -1520,7 +1519,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.26" + "source": "https://github.com/symfony/console/tree/v6.4.30" }, "funding": [ { @@ -1540,20 +1539,20 @@ "type": "tidelift" } ], - "time": "2025-09-26T12:13:46+00:00" + "time": "2025-12-05T13:47:41+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5f311eaf0b321f8ec640f6bae12da43a14026898" + "reference": "5328f994cbb0855ba25c3a54f4a31a279511640f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5f311eaf0b321f8ec640f6bae12da43a14026898", - "reference": "5f311eaf0b321f8ec640f6bae12da43a14026898", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5328f994cbb0855ba25c3a54f4a31a279511640f", + "reference": "5328f994cbb0855ba25c3a54f4a31a279511640f", "shasum": "" }, "require": { @@ -1605,7 +1604,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.26" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.30" }, "funding": [ { @@ -1625,7 +1624,7 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2025-12-07T09:29:59+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1935,16 +1934,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.24", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8" + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", - "reference": "75ae2edb7cdcc0c53766c30b0a2512b8df574bd8", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", "shasum": "" }, "require": { @@ -1981,7 +1980,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.24" + "source": "https://github.com/symfony/filesystem/tree/v6.4.30" }, "funding": [ { @@ -2001,20 +2000,20 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2025-11-26T14:43:45+00:00" }, { "name": "symfony/finder", - "version": "v6.4.24", + "version": "v6.4.27", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "73089124388c8510efb8d2d1689285d285937b08" + "reference": "a1b6aa435d2fba50793b994a839c32b6064f063b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/73089124388c8510efb8d2d1689285d285937b08", - "reference": "73089124388c8510efb8d2d1689285d285937b08", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b6aa435d2fba50793b994a839c32b6064f063b", + "reference": "a1b6aa435d2fba50793b994a839c32b6064f063b", "shasum": "" }, "require": { @@ -2049,7 +2048,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.24" + "source": "https://github.com/symfony/finder/tree/v6.4.27" }, "funding": [ { @@ -2069,20 +2068,20 @@ "type": "tidelift" } ], - "time": "2025-07-15T12:02:45+00:00" + "time": "2025-10-15T18:32:00+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "e16f6ddaf8f026d5f3323f3bbc0660654ccdd837" + "reference": "3c212ec5cac588da8357f5c061194363a4e91010" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e16f6ddaf8f026d5f3323f3bbc0660654ccdd837", - "reference": "e16f6ddaf8f026d5f3323f3bbc0660654ccdd837", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3c212ec5cac588da8357f5c061194363a4e91010", + "reference": "3c212ec5cac588da8357f5c061194363a4e91010", "shasum": "" }, "require": { @@ -2202,7 +2201,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.26" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.30" }, "funding": [ { @@ -2222,20 +2221,20 @@ "type": "tidelift" } ], - "time": "2025-09-16T07:32:45+00:00" + "time": "2025-11-29T11:31:32+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "369241591d92bb5dfb4c6ccd6ee94378a45b1521" + "reference": "0384c62b79d96e9b22d77bc1272c9e83342ba3a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/369241591d92bb5dfb4c6ccd6ee94378a45b1521", - "reference": "369241591d92bb5dfb4c6ccd6ee94378a45b1521", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0384c62b79d96e9b22d77bc1272c9e83342ba3a6", + "reference": "0384c62b79d96e9b22d77bc1272c9e83342ba3a6", "shasum": "" }, "require": { @@ -2283,7 +2282,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.26" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.30" }, "funding": [ { @@ -2303,20 +2302,20 @@ "type": "tidelift" } ], - "time": "2025-09-16T08:22:30+00:00" + "time": "2025-12-01T20:07:31+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8b0f963293aede77593c9845c8c0af34752e893a" + "reference": "ceac681e74e824bbf90468eb231d40988d6d18a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8b0f963293aede77593c9845c8c0af34752e893a", - "reference": "8b0f963293aede77593c9845c8c0af34752e893a", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ceac681e74e824bbf90468eb231d40988d6d18a5", + "reference": "ceac681e74e824bbf90468eb231d40988d6d18a5", "shasum": "" }, "require": { @@ -2401,7 +2400,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.26" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.30" }, "funding": [ { @@ -2421,20 +2420,20 @@ "type": "tidelift" } ], - "time": "2025-09-27T12:20:56+00:00" + "time": "2025-12-07T15:49:34+00:00" }, { "name": "symfony/intl", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "0cd11e99e8c505f7ee7c6f0ccc8bccb8e14e652f" + "reference": "5f40c7141be52f7ee86c4a42dce2845e6fbe3c85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/0cd11e99e8c505f7ee7c6f0ccc8bccb8e14e652f", - "reference": "0cd11e99e8c505f7ee7c6f0ccc8bccb8e14e652f", + "url": "https://api.github.com/repos/symfony/intl/zipball/5f40c7141be52f7ee86c4a42dce2845e6fbe3c85", + "reference": "5f40c7141be52f7ee86c4a42dce2845e6fbe3c85", "shasum": "" }, "require": { @@ -2488,7 +2487,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.26" + "source": "https://github.com/symfony/intl/tree/v6.4.30" }, "funding": [ { @@ -2508,7 +2507,7 @@ "type": "tidelift" } ], - "time": "2025-09-07T21:26:26+00:00" + "time": "2025-11-24T13:57:00+00:00" }, { "name": "symfony/password-hasher", @@ -3091,16 +3090,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "6fc4c445f22857d4b8b40a02b73f423ddab295de" + "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/6fc4c445f22857d4b8b40a02b73f423ddab295de", - "reference": "6fc4c445f22857d4b8b40a02b73f423ddab295de", + "url": "https://api.github.com/repos/symfony/routing/zipball/ea50a13c2711eebcbb66b38ef6382e62e3262859", + "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859", "shasum": "" }, "require": { @@ -3154,7 +3153,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.26" + "source": "https://github.com/symfony/routing/tree/v6.4.30" }, "funding": [ { @@ -3174,20 +3173,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2025-11-22T09:51:35+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -3241,7 +3240,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -3252,25 +3251,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-25T09:37:31+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/string", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea" + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/5621f039a71a11c87c106c1c598bdcd04a19aeea", - "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea", + "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", "shasum": "" }, "require": { @@ -3326,7 +3329,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.26" + "source": "https://github.com/symfony/string/tree/v6.4.30" }, "funding": [ { @@ -3346,20 +3349,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T14:32:46+00:00" + "time": "2025-11-21T18:03:05+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", "shasum": "" }, "require": { @@ -3408,7 +3411,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" }, "funding": [ { @@ -3419,25 +3422,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-27T08:32:26+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/twig-bridge", - "version": "v6.4.25", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "9d13e87591c9de3221c8d6f23cd9a2b5958607bf" + "reference": "d77a78c7fffaf7cb0158d28db824ba78d89a9f34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/9d13e87591c9de3221c8d6f23cd9a2b5958607bf", - "reference": "9d13e87591c9de3221c8d6f23cd9a2b5958607bf", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d77a78c7fffaf7cb0158d28db824ba78d89a9f34", + "reference": "d77a78c7fffaf7cb0158d28db824ba78d89a9f34", "shasum": "" }, "require": { @@ -3450,7 +3457,7 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/console": "<5.4", - "symfony/form": "<6.3", + "symfony/form": "<6.4", "symfony/http-foundation": "<5.4", "symfony/http-kernel": "<6.4", "symfony/mime": "<6.2", @@ -3468,7 +3475,7 @@ "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/form": "^6.4.20|^7.2.5", + "symfony/form": "^6.4.30|~7.3.8|^7.4.1", "symfony/html-sanitizer": "^6.1|^7.0", "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -3517,7 +3524,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.25" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.30" }, "funding": [ { @@ -3537,7 +3544,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T09:41:44+00:00" + "time": "2025-12-05T13:01:31+00:00" }, { "name": "symfony/var-dumper", @@ -3710,16 +3717,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "0fc8b966fd0dcaab544ae59bfc3a433f048c17b0" + "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/0fc8b966fd0dcaab544ae59bfc3a433f048c17b0", - "reference": "0fc8b966fd0dcaab544ae59bfc3a433f048c17b0", + "url": "https://api.github.com/repos/symfony/yaml/zipball/8207ae83da19ee3748d6d4f567b4d9a7c656e331", + "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331", "shasum": "" }, "require": { @@ -3762,7 +3769,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.26" + "source": "https://github.com/symfony/yaml/tree/v6.4.30" }, "funding": [ { @@ -3782,25 +3789,25 @@ "type": "tidelift" } ], - "time": "2025-09-26T15:07:38+00:00" + "time": "2025-12-02T11:50:18+00:00" }, { "name": "twig/intl-extra", - "version": "v3.21.0", + "version": "v3.22.1", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "05bc5d46b9df9e62399eae53e7c0b0633298b146" + "reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/05bc5d46b9df9e62399eae53e7c0b0633298b146", - "reference": "05bc5d46b9df9e62399eae53e7c0b0633298b146", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/93ac31e53cdd3f2e541f42690cd0c54ca8138ab1", + "reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1", "shasum": "" }, "require": { "php": ">=8.1.0", - "symfony/intl": "^5.4|^6.4|^7.0", + "symfony/intl": "^5.4|^6.4|^7.0|^8.0", "twig/twig": "^3.13|^4.0" }, "require-dev": { @@ -3834,7 +3841,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.21.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.22.1" }, "funding": [ { @@ -3846,20 +3853,20 @@ "type": "tidelift" } ], - "time": "2025-01-31T20:45:36+00:00" + "time": "2025-11-02T11:00:49+00:00" }, { "name": "twig/twig", - "version": "v3.21.1", + "version": "v3.22.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d" + "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/285123877d4dd97dd7c11842ac5fb7e86e60d81d", - "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/1de2ec1fc43ab58a4b7e80b214b96bfc895750f3", + "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3", "shasum": "" }, "require": { @@ -3913,7 +3920,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.21.1" + "source": "https://github.com/twigphp/Twig/tree/v3.22.1" }, "funding": [ { @@ -3925,7 +3932,7 @@ "type": "tidelift" } ], - "time": "2025-05-03T07:21:55+00:00" + "time": "2025-11-16T16:01:12+00:00" }, { "name": "webmozart/assert", @@ -3989,29 +3996,29 @@ "packages-dev": [ { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.1.2", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1" + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1", - "reference": "e9cf5e4bbf7eeaf9ef5db34938942602838fc2b1", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1", + "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1", "shasum": "" }, "require": { "composer-plugin-api": "^2.2", "php": ">=5.4", - "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + "squizlabs/php_codesniffer": "^3.1.0 || ^4.0" }, "require-dev": { "composer/composer": "^2.2", "ext-json": "*", "ext-zip": "*", "php-parallel-lint/php-parallel-lint": "^1.4.0", - "phpcompatibility/php-compatibility": "^9.0", + "phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev", "yoast/phpunit-polyfills": "^1.0" }, "type": "composer-plugin", @@ -4081,7 +4088,7 @@ "type": "thanks_dev" } ], - "time": "2025-07-17T20:45:56+00:00" + "time": "2025-11-11T04:32:07+00:00" }, { "name": "gettext/php-scanner", @@ -4256,16 +4263,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.19.4", + "version": "v4.19.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" + "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", + "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", "shasum": "" }, "require": { @@ -4280,11 +4287,6 @@ "bin/php-parse" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, "autoload": { "psr-4": { "PhpParser\\": "lib/PhpParser" @@ -4306,9 +4308,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.5" }, - "time": "2024-09-29T15:01:53+00:00" + "time": "2025-12-06T11:45:25+00:00" }, { "name": "phar-io/manifest", @@ -4949,16 +4951,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.58", + "version": "10.5.60", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e24fb46da450d8e6a5788670513c1af1424f16ca" + "reference": "f2e26f52f80ef77832e359205f216eeac00e320c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e24fb46da450d8e6a5788670513c1af1424f16ca", - "reference": "e24fb46da450d8e6a5788670513c1af1424f16ca", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f2e26f52f80ef77832e359205f216eeac00e320c", + "reference": "f2e26f52f80ef77832e359205f216eeac00e320c", "shasum": "" }, "require": { @@ -5030,7 +5032,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.58" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.60" }, "funding": [ { @@ -5054,20 +5056,20 @@ "type": "tidelift" } ], - "time": "2025-09-28T12:04:46+00:00" + "time": "2025-12-06T07:50:42+00:00" }, { "name": "predis/predis", - "version": "v2.4.0", + "version": "v2.4.1", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b" + "reference": "07105e050622ed80bd60808367ced9e379f31530" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/f49e13ee3a2a825631562aa0223ac922ec5d058b", - "reference": "f49e13ee3a2a825631562aa0223ac922ec5d058b", + "url": "https://api.github.com/repos/predis/predis/zipball/07105e050622ed80bd60808367ced9e379f31530", + "reference": "07105e050622ed80bd60808367ced9e379f31530", "shasum": "" }, "require": { @@ -5108,7 +5110,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v2.4.0" + "source": "https://github.com/predis/predis/tree/v2.4.1" }, "funding": [ { @@ -5116,7 +5118,7 @@ "type": "github" } ], - "time": "2025-04-30T15:16:02+00:00" + "time": "2025-11-12T18:00:11+00:00" }, { "name": "sebastian/cli-parser", @@ -6073,16 +6075,16 @@ }, { "name": "simplesamlphp/saml2-legacy", - "version": "v4.19.0", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2-legacy.git", - "reference": "96eb144356702d7d913078fb2e4364e42458fc31" + "reference": "a9812c7fc0bb7cee9ce001e8cc94570c37acdfb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/96eb144356702d7d913078fb2e4364e42458fc31", - "reference": "96eb144356702d7d913078fb2e4364e42458fc31", + "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/a9812c7fc0bb7cee9ce001e8cc94570c37acdfb2", + "reference": "a9812c7fc0bb7cee9ce001e8cc94570c37acdfb2", "shasum": "" }, "require": { @@ -6091,7 +6093,7 @@ "ext-zlib": "*", "php": ">=7.1 || ^8.0", "psr/log": "~1.1 || ^2.0 || ^3.0", - "robrichards/xmlseclibs": "^3.1.1", + "robrichards/xmlseclibs": "^3.1.4", "webmozart/assert": "^1.9" }, "conflict": { @@ -6127,9 +6129,9 @@ ], "description": "SAML2 PHP library from SimpleSAMLphp", "support": { - "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.19.0" + "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.19.1" }, - "time": "2025-09-05T23:39:13+00:00" + "time": "2025-12-08T12:05:03+00:00" }, { "name": "simplesamlphp/simplesamlphp-module-adfs", @@ -6247,32 +6249,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.24.0", + "version": "8.25.1", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "08e7989c0351f3f38b82172838195c35d9819efa" + "reference": "4caa5ec5a30b84b2305e80159c710d437f40cc40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/08e7989c0351f3f38b82172838195c35d9819efa", - "reference": "08e7989c0351f3f38b82172838195c35d9819efa", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/4caa5ec5a30b84b2305e80159c710d437f40cc40", + "reference": "4caa5ec5a30b84b2305e80159c710d437f40cc40", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.1.2", + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.2.0", "php": "^7.4 || ^8.0", "phpstan/phpdoc-parser": "^2.3.0", - "squizlabs/php_codesniffer": "^4.0.0" + "squizlabs/php_codesniffer": "^4.0.1" }, "require-dev": { "phing/phing": "3.0.1|3.1.0", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.29", + "phpstan/phpstan": "2.1.32", "phpstan/phpstan-deprecation-rules": "2.0.3", - "phpstan/phpstan-phpunit": "2.0.7", - "phpstan/phpstan-strict-rules": "2.0.6", - "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.3.14" + "phpstan/phpstan-phpunit": "2.0.8", + "phpstan/phpstan-strict-rules": "2.0.7", + "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.4.4" }, "type": "phpcodesniffer-standard", "extra": { @@ -6296,7 +6298,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.24.0" + "source": "https://github.com/slevomat/coding-standard/tree/8.25.1" }, "funding": [ { @@ -6308,20 +6310,20 @@ "type": "tidelift" } ], - "time": "2025-09-25T21:37:40+00:00" + "time": "2025-11-25T18:01:43+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "4.0.0", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "06113cfdaf117fc2165f9cd040bd0f17fcd5242d" + "reference": "0525c73950de35ded110cffafb9892946d7771b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/06113cfdaf117fc2165f9cd040bd0f17fcd5242d", - "reference": "06113cfdaf117fc2165f9cd040bd0f17fcd5242d", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0525c73950de35ded110cffafb9892946d7771b5", + "reference": "0525c73950de35ded110cffafb9892946d7771b5", "shasum": "" }, "require": { @@ -6387,32 +6389,28 @@ "type": "thanks_dev" } ], - "time": "2025-09-15T11:28:58+00:00" + "time": "2025-11-10T16:43:36+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "ed77a629c13979e051b7000a317966474d566398" + "reference": "059b051b38f2138ef104dd848fa48f0cbbb7d78b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/ed77a629c13979e051b7000a317966474d566398", - "reference": "ed77a629c13979e051b7000a317966474d566398", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/059b051b38f2138ef104dd848fa48f0cbbb7d78b", + "reference": "059b051b38f2138ef104dd848fa48f0cbbb7d78b", "shasum": "" }, "require": { - "php": ">=7.2.5" - }, - "conflict": { - "phpunit/phpunit": "<7.5|9.1.2" + "php": ">=8.1.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/error-handler": "^5.4|^6.4|^7.0", - "symfony/polyfill-php81": "^1.27" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4.3|^7.0.3|^8.0" }, "bin": [ "bin/simple-phpunit" @@ -6456,7 +6454,7 @@ "testing" ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.3.4" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.0" }, "funding": [ { @@ -6476,20 +6474,20 @@ "type": "tidelift" } ], - "time": "2025-09-12T12:18:52+00:00" + "time": "2025-10-28T22:44:23+00:00" }, { "name": "symfony/translation", - "version": "v6.4.26", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "c8559fe25c7ee7aa9d28f228903a46db008156a4" + "reference": "d1fdeefd0707d15eb150c04e8837bf0b15ebea39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/c8559fe25c7ee7aa9d28f228903a46db008156a4", - "reference": "c8559fe25c7ee7aa9d28f228903a46db008156a4", + "url": "https://api.github.com/repos/symfony/translation/zipball/d1fdeefd0707d15eb150c04e8837bf0b15ebea39", + "reference": "d1fdeefd0707d15eb150c04e8837bf0b15ebea39", "shasum": "" }, "require": { @@ -6555,7 +6553,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.26" + "source": "https://github.com/symfony/translation/tree/v6.4.30" }, "funding": [ { @@ -6575,20 +6573,20 @@ "type": "tidelift" } ], - "time": "2025-09-05T18:17:25+00:00" + "time": "2025-11-24T13:57:00+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -6617,7 +6615,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -6625,7 +6623,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" } ], "aliases": [], @@ -6651,5 +6649,5 @@ "ext-curl": "*", "ext-pdo_sqlite": "*" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index d8b31af5a1..f377686ce2 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,11 +5,17 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.10 +## Version 2.3.11 Released TBD +## Version 2.3.10 + +Released 2025-12-08 + * store.redis.tls should apply to sentinels (#2557) +* Fix unhandled canonicalization failure (CVE-2025-66475) +* Bump dependencies ## Version 2.3.9 diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index 070bf637ef..5379051676 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.9 +%define version 2.3.10 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 2cbc136fd7..46cab6030f 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.9'; + public const VERSION = '2.3.10'; /** * A default value which means that the given option is required. From 715391a04c245990463c9c51651eaefe3457b911 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Fri, 13 Mar 2026 13:16:58 +0100 Subject: [PATCH 92/93] Release v2.3.11 --- .github/build/full.json | 4 +- composer.json | 6 +- composer.lock | 408 +++++++++++++++---------------- docs/simplesamlphp-changelog.md | 9 +- extra/simplesamlphp.spec | 2 +- src/SimpleSAML/Configuration.php | 2 +- 6 files changed, 219 insertions(+), 212 deletions(-) diff --git a/.github/build/full.json b/.github/build/full.json index b43ffab681..1a7ffa5346 100644 --- a/.github/build/full.json +++ b/.github/build/full.json @@ -18,7 +18,7 @@ }, "ldap": { "repository": "simplesamlphp/simplesamlphp-module-ldap", - "version": "~2.3.0" + "version": "~2.3.7" }, "metarefresh": { "repository": "simplesamlphp/simplesamlphp-module-metarefresh", @@ -26,7 +26,7 @@ }, "radius": { "repository": "simplesamlphp/simplesamlphp-module-radius", - "version": "~2.0.2" + "version": "~2.0.3" }, "statistics": { "repository": "simplesamlphp/simplesamlphp-module-statistics", diff --git a/composer.json b/composer.json index de43109843..4f56ae4438 100644 --- a/composer.json +++ b/composer.json @@ -63,9 +63,9 @@ "psr/log": "^3.0", "simplesamlphp/assert": "^1.1", "simplesamlphp/composer-module-installer": "~1.3.6", - "simplesamlphp/saml2": "^4.19.1", + "simplesamlphp/saml2": "^4.19.2", "simplesamlphp/simplesamlphp-assets-base": "~2.3.0", - "simplesamlphp/xml-security": "^1.7", + "simplesamlphp/xml-security": "^1.13.9", "symfony/cache": "^6.4", "symfony/config": "^6.4", "symfony/console": "^6.4", @@ -130,5 +130,5 @@ "translations:unused": "php bin/translations translations:unused", "translations:update:translatable": "php bin/translations translations:update:translatable" }, - "version": "v2.3.10" + "version": "v2.3.11" } diff --git a/composer.lock b/composer.lock index 43827994c7..3efdec43fd 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "742a2645ce7064669e2d536dc7a62b42", + "content-hash": "9c9942b0958f9f07ada6d99609c44b5d", "packages": [ { "name": "gettext/gettext", @@ -82,16 +82,16 @@ }, { "name": "gettext/languages", - "version": "2.12.1", + "version": "2.12.2", "source": { "type": "git", "url": "https://github.com/php-gettext/Languages.git", - "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1" + "reference": "079d6f4842cbcbf5673a70d8e93169a684e7aadd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Languages/zipball/0b0b0851c55168e1dfb14305735c64019732b5f1", - "reference": "0b0b0851c55168e1dfb14305735c64019732b5f1", + "url": "https://api.github.com/repos/php-gettext/Languages/zipball/079d6f4842cbcbf5673a70d8e93169a684e7aadd", + "reference": "079d6f4842cbcbf5673a70d8e93169a684e7aadd", "shasum": "" }, "require": { @@ -141,7 +141,7 @@ ], "support": { "issues": "https://github.com/php-gettext/Languages/issues", - "source": "https://github.com/php-gettext/Languages/tree/2.12.1" + "source": "https://github.com/php-gettext/Languages/tree/2.12.2" }, "funding": [ { @@ -153,7 +153,7 @@ "type": "github" } ], - "time": "2025-03-19T11:14:02+00:00" + "time": "2026-02-23T14:05:50+00:00" }, { "name": "gettext/translator", @@ -782,16 +782,16 @@ }, { "name": "robrichards/xmlseclibs", - "version": "3.1.4", + "version": "3.1.5", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd" + "reference": "03062be78178cbb5e8f605cd255dc32a14981f92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/bc87389224c6de95802b505e5265b0ec2c5bcdbd", - "reference": "bc87389224c6de95802b505e5265b0ec2c5bcdbd", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/03062be78178cbb5e8f605cd255dc32a14981f92", + "reference": "03062be78178cbb5e8f605cd255dc32a14981f92", "shasum": "" }, "require": { @@ -818,9 +818,9 @@ ], "support": { "issues": "https://github.com/robrichards/xmlseclibs/issues", - "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.4" + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.5" }, - "time": "2025-12-08T11:57:53+00:00" + "time": "2026-03-13T10:31:56+00:00" }, { "name": "simplesamlphp/assert", @@ -968,16 +968,16 @@ }, { "name": "simplesamlphp/saml2", - "version": "v4.19.1", + "version": "v4.19.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "e928cffd4ede7f066189e05680aecb07e88aefad" + "reference": "93df4bffc052939e74ec0c1208e66cbd7eb2a1b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/e928cffd4ede7f066189e05680aecb07e88aefad", - "reference": "e928cffd4ede7f066189e05680aecb07e88aefad", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/93df4bffc052939e74ec0c1208e66cbd7eb2a1b2", + "reference": "93df4bffc052939e74ec0c1208e66cbd7eb2a1b2", "shasum": "" }, "require": { @@ -986,7 +986,7 @@ "ext-zlib": "*", "php": ">=7.1 || ^8.0", "psr/log": "~1.1 || ^2.0 || ^3.0", - "robrichards/xmlseclibs": "^3.1.4", + "robrichards/xmlseclibs": "^3.1.5", "webmozart/assert": "^1.9" }, "conflict": { @@ -1023,22 +1023,22 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.19.1" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.19.2" }, - "time": "2025-12-08T12:04:12+00:00" + "time": "2026-03-13T12:09:45+00:00" }, { "name": "simplesamlphp/simplesamlphp-assets-base", - "version": "v2.3.12", + "version": "v2.3.15", "source": { "type": "git", "url": "https://github.com/simplesamlphp/simplesamlphp-assets-base.git", - "reference": "1bac98af2f28fe52c53567785155066291505dbb" + "reference": "8238c8067fe87c14a2e16b53db938beb65a10d9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/1bac98af2f28fe52c53567785155066291505dbb", - "reference": "1bac98af2f28fe52c53567785155066291505dbb", + "url": "https://api.github.com/repos/simplesamlphp/simplesamlphp-assets-base/zipball/8238c8067fe87c14a2e16b53db938beb65a10d9f", + "reference": "8238c8067fe87c14a2e16b53db938beb65a10d9f", "shasum": "" }, "require": { @@ -1059,9 +1059,9 @@ "description": "Assets for the SimpleSAMLphp main repository", "support": { "issues": "https://github.com/simplesamlphp/simplesamlphp-assets-base/issues", - "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.12" + "source": "https://github.com/simplesamlphp/simplesamlphp-assets-base/tree/v2.3.15" }, - "time": "2025-11-23T01:31:20+00:00" + "time": "2026-03-04T16:52:18+00:00" }, { "name": "simplesamlphp/xml-common", @@ -1126,16 +1126,16 @@ }, { "name": "simplesamlphp/xml-security", - "version": "v1.13.8", + "version": "v1.13.9", "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "5e9c726889676911a499b44e15046227015a4947" + "reference": "cad6d57cf0a5a0b7e0cc4e4a5b18752e56eb1520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/5e9c726889676911a499b44e15046227015a4947", - "reference": "5e9c726889676911a499b44e15046227015a4947", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/cad6d57cf0a5a0b7e0cc4e4a5b18752e56eb1520", + "reference": "cad6d57cf0a5a0b7e0cc4e4a5b18752e56eb1520", "shasum": "" }, "require": { @@ -1184,22 +1184,22 @@ ], "support": { "issues": "https://github.com/simplesamlphp/xml-security/issues", - "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.8" + "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.9" }, - "time": "2025-12-08T12:08:30+00:00" + "time": "2026-03-13T12:06:16+00:00" }, { "name": "symfony/cache", - "version": "v6.4.30", + "version": "v6.4.35", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "eb3272ed2daed13ed24816e862d73f73d995972a" + "reference": "77f5eca135d1b5471de4301b99496649e4f62878" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/eb3272ed2daed13ed24816e862d73f73d995972a", - "reference": "eb3272ed2daed13ed24816e862d73f73d995972a", + "url": "https://api.github.com/repos/symfony/cache/zipball/77f5eca135d1b5471de4301b99496649e4f62878", + "reference": "77f5eca135d1b5471de4301b99496649e4f62878", "shasum": "" }, "require": { @@ -1266,7 +1266,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.30" + "source": "https://github.com/symfony/cache/tree/v6.4.35" }, "funding": [ { @@ -1286,7 +1286,7 @@ "type": "tidelift" } ], - "time": "2025-12-01T16:41:59+00:00" + "time": "2026-03-05T20:47:12+00:00" }, { "name": "symfony/cache-contracts", @@ -1366,16 +1366,16 @@ }, { "name": "symfony/config", - "version": "v6.4.28", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62" + "reference": "ce9cb0c0d281aaf188b802d4968e42bfb60701e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/15947c18ef3ddb0b2f4ec936b9e90e2520979f62", - "reference": "15947c18ef3ddb0b2f4ec936b9e90e2520979f62", + "url": "https://api.github.com/repos/symfony/config/zipball/ce9cb0c0d281aaf188b802d4968e42bfb60701e9", + "reference": "ce9cb0c0d281aaf188b802d4968e42bfb60701e9", "shasum": "" }, "require": { @@ -1421,7 +1421,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.28" + "source": "https://github.com/symfony/config/tree/v6.4.34" }, "funding": [ { @@ -1441,20 +1441,20 @@ "type": "tidelift" } ], - "time": "2025-11-01T19:52:02+00:00" + "time": "2026-02-24T17:34:50+00:00" }, { "name": "symfony/console", - "version": "v6.4.30", + "version": "v6.4.35", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1b2813049506b39eb3d7e64aff033fd5ca26c97e" + "reference": "49257c96304c508223815ee965c251e7c79e614e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1b2813049506b39eb3d7e64aff033fd5ca26c97e", - "reference": "1b2813049506b39eb3d7e64aff033fd5ca26c97e", + "url": "https://api.github.com/repos/symfony/console/zipball/49257c96304c508223815ee965c251e7c79e614e", + "reference": "49257c96304c508223815ee965c251e7c79e614e", "shasum": "" }, "require": { @@ -1519,7 +1519,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.30" + "source": "https://github.com/symfony/console/tree/v6.4.35" }, "funding": [ { @@ -1539,20 +1539,20 @@ "type": "tidelift" } ], - "time": "2025-12-05T13:47:41+00:00" + "time": "2026-03-06T13:31:08+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.30", + "version": "v6.4.35", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5328f994cbb0855ba25c3a54f4a31a279511640f" + "reference": "d95712d0e9446b9f244b64811ffb6af7b7434213" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5328f994cbb0855ba25c3a54f4a31a279511640f", - "reference": "5328f994cbb0855ba25c3a54f4a31a279511640f", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d95712d0e9446b9f244b64811ffb6af7b7434213", + "reference": "d95712d0e9446b9f244b64811ffb6af7b7434213", "shasum": "" }, "require": { @@ -1604,7 +1604,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.30" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.35" }, "funding": [ { @@ -1624,7 +1624,7 @@ "type": "tidelift" } ], - "time": "2025-12-07T09:29:59+00:00" + "time": "2026-02-26T12:16:01+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1695,16 +1695,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.26", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c" + "reference": "8c18400784fcb014dc73c8d5601a9576af7f8ad4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/41bedcaec5b72640b0ec2096547b75fda72ead6c", - "reference": "41bedcaec5b72640b0ec2096547b75fda72ead6c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/8c18400784fcb014dc73c8d5601a9576af7f8ad4", + "reference": "8c18400784fcb014dc73c8d5601a9576af7f8ad4", "shasum": "" }, "require": { @@ -1750,7 +1750,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.26" + "source": "https://github.com/symfony/error-handler/tree/v6.4.32" }, "funding": [ { @@ -1770,20 +1770,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2026-01-19T19:28:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.25", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b0cf3162020603587363f0551cd3be43958611ff" + "reference": "99d7e101826e6610606b9433248f80c1997cd20b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b0cf3162020603587363f0551cd3be43958611ff", - "reference": "b0cf3162020603587363f0551cd3be43958611ff", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99d7e101826e6610606b9433248f80c1997cd20b", + "reference": "99d7e101826e6610606b9433248f80c1997cd20b", "shasum": "" }, "require": { @@ -1834,7 +1834,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/v6.4.25" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.32" }, "funding": [ { @@ -1854,7 +1854,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T09:41:44+00:00" + "time": "2026-01-05T11:13:48+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -1934,16 +1934,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.4.30", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" + "reference": "01ffe0411b842f93c571e5c391f289c3fdd498c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/01ffe0411b842f93c571e5c391f289c3fdd498c3", + "reference": "01ffe0411b842f93c571e5c391f289c3fdd498c3", "shasum": "" }, "require": { @@ -1980,7 +1980,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.30" + "source": "https://github.com/symfony/filesystem/tree/v6.4.34" }, "funding": [ { @@ -2000,20 +2000,20 @@ "type": "tidelift" } ], - "time": "2025-11-26T14:43:45+00:00" + "time": "2026-02-24T17:51:06+00:00" }, { "name": "symfony/finder", - "version": "v6.4.27", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a1b6aa435d2fba50793b994a839c32b6064f063b" + "reference": "9590e86be1d1c57bfbb16d0dd040345378c20896" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a1b6aa435d2fba50793b994a839c32b6064f063b", - "reference": "a1b6aa435d2fba50793b994a839c32b6064f063b", + "url": "https://api.github.com/repos/symfony/finder/zipball/9590e86be1d1c57bfbb16d0dd040345378c20896", + "reference": "9590e86be1d1c57bfbb16d0dd040345378c20896", "shasum": "" }, "require": { @@ -2048,7 +2048,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.27" + "source": "https://github.com/symfony/finder/tree/v6.4.34" }, "funding": [ { @@ -2068,20 +2068,20 @@ "type": "tidelift" } ], - "time": "2025-10-15T18:32:00+00:00" + "time": "2026-01-28T15:16:37+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.30", + "version": "v6.4.35", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "3c212ec5cac588da8357f5c061194363a4e91010" + "reference": "2e065db347ef1c2d1d4b916c860f9782c9060221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3c212ec5cac588da8357f5c061194363a4e91010", - "reference": "3c212ec5cac588da8357f5c061194363a4e91010", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/2e065db347ef1c2d1d4b916c860f9782c9060221", + "reference": "2e065db347ef1c2d1d4b916c860f9782c9060221", "shasum": "" }, "require": { @@ -2201,7 +2201,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.30" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.35" }, "funding": [ { @@ -2221,20 +2221,20 @@ "type": "tidelift" } ], - "time": "2025-11-29T11:31:32+00:00" + "time": "2026-03-06T11:15:58+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.30", + "version": "v6.4.35", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "0384c62b79d96e9b22d77bc1272c9e83342ba3a6" + "reference": "cffffd0a2c037117b742b4f8b379a22a2a33f6d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0384c62b79d96e9b22d77bc1272c9e83342ba3a6", - "reference": "0384c62b79d96e9b22d77bc1272c9e83342ba3a6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cffffd0a2c037117b742b4f8b379a22a2a33f6d2", + "reference": "cffffd0a2c037117b742b4f8b379a22a2a33f6d2", "shasum": "" }, "require": { @@ -2282,7 +2282,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.30" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.35" }, "funding": [ { @@ -2302,20 +2302,20 @@ "type": "tidelift" } ], - "time": "2025-12-01T20:07:31+00:00" + "time": "2026-03-06T11:15:58+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.30", + "version": "v6.4.35", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "ceac681e74e824bbf90468eb231d40988d6d18a5" + "reference": "ece1a0da7745a5243683f178155c0412c92691eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ceac681e74e824bbf90468eb231d40988d6d18a5", - "reference": "ceac681e74e824bbf90468eb231d40988d6d18a5", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ece1a0da7745a5243683f178155c0412c92691eb", + "reference": "ece1a0da7745a5243683f178155c0412c92691eb", "shasum": "" }, "require": { @@ -2356,7 +2356,7 @@ "symfony/config": "^6.1|^7.0", "symfony/console": "^5.4|^6.0|^7.0", "symfony/css-selector": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4.1|^7.0.1", "symfony/dom-crawler": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/finder": "^5.4|^6.0|^7.0", @@ -2400,7 +2400,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.30" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.35" }, "funding": [ { @@ -2420,20 +2420,20 @@ "type": "tidelift" } ], - "time": "2025-12-07T15:49:34+00:00" + "time": "2026-03-06T16:28:07+00:00" }, { "name": "symfony/intl", - "version": "v6.4.30", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "5f40c7141be52f7ee86c4a42dce2845e6fbe3c85" + "reference": "ea1b1c555e3f0c6850605307717423ff3a0407ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/5f40c7141be52f7ee86c4a42dce2845e6fbe3c85", - "reference": "5f40c7141be52f7ee86c4a42dce2845e6fbe3c85", + "url": "https://api.github.com/repos/symfony/intl/zipball/ea1b1c555e3f0c6850605307717423ff3a0407ad", + "reference": "ea1b1c555e3f0c6850605307717423ff3a0407ad", "shasum": "" }, "require": { @@ -2487,7 +2487,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.30" + "source": "https://github.com/symfony/intl/tree/v6.4.34" }, "funding": [ { @@ -2507,20 +2507,20 @@ "type": "tidelift" } ], - "time": "2025-11-24T13:57:00+00:00" + "time": "2026-02-08T20:40:30+00:00" }, { "name": "symfony/password-hasher", - "version": "v6.4.24", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557" + "reference": "fbdfa5a2ca218ec8bb9029517426df2d780bdba9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/dcab5ac87450aaed26483ba49c2ce86808da7557", - "reference": "dcab5ac87450aaed26483ba49c2ce86808da7557", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/fbdfa5a2ca218ec8bb9029517426df2d780bdba9", + "reference": "fbdfa5a2ca218ec8bb9029517426df2d780bdba9", "shasum": "" }, "require": { @@ -2563,7 +2563,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v6.4.24" + "source": "https://github.com/symfony/password-hasher/tree/v6.4.32" }, "funding": [ { @@ -2583,7 +2583,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:14:14+00:00" + "time": "2026-01-01T21:24:53+00:00" }, { "name": "symfony/polyfill-ctype", @@ -3090,16 +3090,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.30", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859" + "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ea50a13c2711eebcbb66b38ef6382e62e3262859", - "reference": "ea50a13c2711eebcbb66b38ef6382e62e3262859", + "url": "https://api.github.com/repos/symfony/routing/zipball/5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", + "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", "shasum": "" }, "require": { @@ -3153,7 +3153,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.30" + "source": "https://github.com/symfony/routing/tree/v6.4.34" }, "funding": [ { @@ -3173,7 +3173,7 @@ "type": "tidelift" } ], - "time": "2025-11-22T09:51:35+00:00" + "time": "2026-02-24T17:34:50+00:00" }, { "name": "symfony/service-contracts", @@ -3264,16 +3264,16 @@ }, { "name": "symfony/string", - "version": "v6.4.30", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" + "reference": "2adaf4106f2ef4c67271971bde6d3fe0a6936432" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", + "url": "https://api.github.com/repos/symfony/string/zipball/2adaf4106f2ef4c67271971bde6d3fe0a6936432", + "reference": "2adaf4106f2ef4c67271971bde6d3fe0a6936432", "shasum": "" }, "require": { @@ -3329,7 +3329,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.30" + "source": "https://github.com/symfony/string/tree/v6.4.34" }, "funding": [ { @@ -3349,7 +3349,7 @@ "type": "tidelift" } ], - "time": "2025-11-21T18:03:05+00:00" + "time": "2026-02-08T20:44:54+00:00" }, { "name": "symfony/translation-contracts", @@ -3435,16 +3435,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.30", + "version": "v6.4.35", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "d77a78c7fffaf7cb0158d28db824ba78d89a9f34" + "reference": "352acf608d1c9c00692fc3bba9f445176c14ce0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d77a78c7fffaf7cb0158d28db824ba78d89a9f34", - "reference": "d77a78c7fffaf7cb0158d28db824ba78d89a9f34", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/352acf608d1c9c00692fc3bba9f445176c14ce0f", + "reference": "352acf608d1c9c00692fc3bba9f445176c14ce0f", "shasum": "" }, "require": { @@ -3457,7 +3457,7 @@ "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", "symfony/console": "<5.4", - "symfony/form": "<6.4", + "symfony/form": "<6.4.32|>7,<7.3.10|>7.4,<7.4.4", "symfony/http-foundation": "<5.4", "symfony/http-kernel": "<6.4", "symfony/mime": "<6.2", @@ -3475,7 +3475,7 @@ "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/finder": "^5.4|^6.0|^7.0", - "symfony/form": "^6.4.30|~7.3.8|^7.4.1", + "symfony/form": "^6.4.32|~7.3.10|^7.4.4", "symfony/html-sanitizer": "^6.1|^7.0", "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -3524,7 +3524,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.30" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.35" }, "funding": [ { @@ -3544,20 +3544,20 @@ "type": "tidelift" } ], - "time": "2025-12-05T13:01:31+00:00" + "time": "2026-03-04T15:30:31+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.26", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a" + "reference": "131fc9915e0343052af5ed5040401b481ca192aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfae1497a2f1eaad78dbc0590311c599c7178d4a", - "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/131fc9915e0343052af5ed5040401b481ca192aa", + "reference": "131fc9915e0343052af5ed5040401b481ca192aa", "shasum": "" }, "require": { @@ -3612,7 +3612,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.26" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.32" }, "funding": [ { @@ -3632,7 +3632,7 @@ "type": "tidelift" } ], - "time": "2025-09-25T15:37:27+00:00" + "time": "2026-01-01T13:34:06+00:00" }, { "name": "symfony/var-exporter", @@ -3717,16 +3717,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.30", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331" + "reference": "7bca30dabed7900a08c5ad4f1d6483f881a64d0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/8207ae83da19ee3748d6d4f567b4d9a7c656e331", - "reference": "8207ae83da19ee3748d6d4f567b4d9a7c656e331", + "url": "https://api.github.com/repos/symfony/yaml/zipball/7bca30dabed7900a08c5ad4f1d6483f881a64d0f", + "reference": "7bca30dabed7900a08c5ad4f1d6483f881a64d0f", "shasum": "" }, "require": { @@ -3769,7 +3769,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.30" + "source": "https://github.com/symfony/yaml/tree/v6.4.34" }, "funding": [ { @@ -3789,20 +3789,20 @@ "type": "tidelift" } ], - "time": "2025-12-02T11:50:18+00:00" + "time": "2026-02-06T18:32:11+00:00" }, { "name": "twig/intl-extra", - "version": "v3.22.1", + "version": "v3.23.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1" + "reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/93ac31e53cdd3f2e541f42690cd0c54ca8138ab1", - "reference": "93ac31e53cdd3f2e541f42690cd0c54ca8138ab1", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f", + "reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f", "shasum": "" }, "require": { @@ -3841,7 +3841,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.22.1" + "source": "https://github.com/twigphp/intl-extra/tree/v3.23.0" }, "funding": [ { @@ -3853,20 +3853,20 @@ "type": "tidelift" } ], - "time": "2025-11-02T11:00:49+00:00" + "time": "2026-01-17T13:57:47+00:00" }, { "name": "twig/twig", - "version": "v3.22.1", + "version": "v3.23.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3" + "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/1de2ec1fc43ab58a4b7e80b214b96bfc895750f3", - "reference": "1de2ec1fc43ab58a4b7e80b214b96bfc895750f3", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", + "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", "shasum": "" }, "require": { @@ -3920,7 +3920,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.22.1" + "source": "https://github.com/twigphp/Twig/tree/v3.23.0" }, "funding": [ { @@ -3932,7 +3932,7 @@ "type": "tidelift" } ], - "time": "2025-11-16T16:01:12+00:00" + "time": "2026-01-23T21:00:41+00:00" }, { "name": "webmozart/assert", @@ -4480,16 +4480,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.0", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", "shasum": "" }, "require": { @@ -4521,17 +4521,17 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" }, - "time": "2025-08-30T15:50:23+00:00" + "time": "2026-01-25T14:56:51+00:00" }, { "name": "phpstan/phpstan", - "version": "1.12.32", + "version": "1.12.33", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2770dcdf5078d0b0d53f94317e06affe88419aa8", - "reference": "2770dcdf5078d0b0d53f94317e06affe88419aa8", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/37982d6fc7cbb746dda7773530cda557cdf119e1", + "reference": "37982d6fc7cbb746dda7773530cda557cdf119e1", "shasum": "" }, "require": { @@ -4576,7 +4576,7 @@ "type": "github" } ], - "time": "2025-09-30T10:16:31+00:00" + "time": "2026-02-28T20:30:03+00:00" }, { "name": "phpstan/phpstan-mockery", @@ -4951,16 +4951,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.60", + "version": "10.5.63", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "f2e26f52f80ef77832e359205f216eeac00e320c" + "reference": "33198268dad71e926626b618f3ec3966661e4d90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f2e26f52f80ef77832e359205f216eeac00e320c", - "reference": "f2e26f52f80ef77832e359205f216eeac00e320c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/33198268dad71e926626b618f3ec3966661e4d90", + "reference": "33198268dad71e926626b618f3ec3966661e4d90", "shasum": "" }, "require": { @@ -4981,7 +4981,7 @@ "phpunit/php-timer": "^6.0.0", "sebastian/cli-parser": "^2.0.1", "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.4", + "sebastian/comparator": "^5.0.5", "sebastian/diff": "^5.1.1", "sebastian/environment": "^6.1.0", "sebastian/exporter": "^5.1.4", @@ -5032,7 +5032,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.60" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.63" }, "funding": [ { @@ -5056,7 +5056,7 @@ "type": "tidelift" } ], - "time": "2025-12-06T07:50:42+00:00" + "time": "2026-01-27T05:48:37+00:00" }, { "name": "predis/predis", @@ -5290,16 +5290,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.4", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e" + "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e8e53097718d2b53cfb2aa859b06a41abf58c62e", - "reference": "e8e53097718d2b53cfb2aa859b06a41abf58c62e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55dfef806eb7dfeb6e7a6935601fef866f8ca48d", + "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d", "shasum": "" }, "require": { @@ -5355,7 +5355,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.4" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.5" }, "funding": [ { @@ -5375,7 +5375,7 @@ "type": "tidelift" } ], - "time": "2025-09-07T05:25:07+00:00" + "time": "2026-01-24T09:25:16+00:00" }, { "name": "sebastian/complexity", @@ -6249,32 +6249,32 @@ }, { "name": "slevomat/coding-standard", - "version": "8.25.1", + "version": "8.28.0", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "4caa5ec5a30b84b2305e80159c710d437f40cc40" + "reference": "0cd4b30cc1037eca54091c188d260d570e61770c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/4caa5ec5a30b84b2305e80159c710d437f40cc40", - "reference": "4caa5ec5a30b84b2305e80159c710d437f40cc40", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/0cd4b30cc1037eca54091c188d260d570e61770c", + "reference": "0cd4b30cc1037eca54091c188d260d570e61770c", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.2.0", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.2.0", "php": "^7.4 || ^8.0", - "phpstan/phpdoc-parser": "^2.3.0", + "phpstan/phpdoc-parser": "^2.3.2", "squizlabs/php_codesniffer": "^4.0.1" }, "require-dev": { - "phing/phing": "3.0.1|3.1.0", + "phing/phing": "3.0.1|3.1.2", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.32", - "phpstan/phpstan-deprecation-rules": "2.0.3", - "phpstan/phpstan-phpunit": "2.0.8", - "phpstan/phpstan-strict-rules": "2.0.7", - "phpunit/phpunit": "9.6.8|10.5.48|11.4.4|11.5.36|12.4.4" + "phpstan/phpstan": "2.1.40", + "phpstan/phpstan-deprecation-rules": "2.0.4", + "phpstan/phpstan-phpunit": "2.0.16", + "phpstan/phpstan-strict-rules": "2.0.10", + "phpunit/phpunit": "9.6.34|10.5.63|11.4.4|11.5.50|12.5.14" }, "type": "phpcodesniffer-standard", "extra": { @@ -6298,7 +6298,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.25.1" + "source": "https://github.com/slevomat/coding-standard/tree/8.28.0" }, "funding": [ { @@ -6310,7 +6310,7 @@ "type": "tidelift" } ], - "time": "2025-11-25T18:01:43+00:00" + "time": "2026-02-23T21:35:24+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -6393,16 +6393,16 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v7.4.0", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "059b051b38f2138ef104dd848fa48f0cbbb7d78b" + "reference": "53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/059b051b38f2138ef104dd848fa48f0cbbb7d78b", - "reference": "059b051b38f2138ef104dd848fa48f0cbbb7d78b", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f", + "reference": "53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f", "shasum": "" }, "require": { @@ -6454,7 +6454,7 @@ "testing" ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.0" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.7" }, "funding": [ { @@ -6474,20 +6474,20 @@ "type": "tidelift" } ], - "time": "2025-10-28T22:44:23+00:00" + "time": "2026-03-04T13:54:41+00:00" }, { "name": "symfony/translation", - "version": "v6.4.30", + "version": "v6.4.34", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "d1fdeefd0707d15eb150c04e8837bf0b15ebea39" + "reference": "d07d117db41341511671b0a1a2be48f2772189ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/d1fdeefd0707d15eb150c04e8837bf0b15ebea39", - "reference": "d1fdeefd0707d15eb150c04e8837bf0b15ebea39", + "url": "https://api.github.com/repos/symfony/translation/zipball/d07d117db41341511671b0a1a2be48f2772189ce", + "reference": "d07d117db41341511671b0a1a2be48f2772189ce", "shasum": "" }, "require": { @@ -6553,7 +6553,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.30" + "source": "https://github.com/symfony/translation/tree/v6.4.34" }, "funding": [ { @@ -6573,7 +6573,7 @@ "type": "tidelift" } ], - "time": "2025-11-24T13:57:00+00:00" + "time": "2026-02-16T20:44:03+00:00" }, { "name": "theseer/tokenizer", diff --git a/docs/simplesamlphp-changelog.md b/docs/simplesamlphp-changelog.md index f377686ce2..9b17589cb2 100644 --- a/docs/simplesamlphp-changelog.md +++ b/docs/simplesamlphp-changelog.md @@ -5,10 +5,17 @@ This document lists the changes between versions of SimpleSAMLphp. See the [upgrade notes](https://simplesamlphp.org/docs/stable/simplesamlphp-upgrade-notes.html) for specific information about upgrading. -## Version 2.3.11 +## Version 2.3.12 Released TBD +## Version 2.3.11 + +Released 2026-03-13 + +* Bump robrichards/xmlseclibs (CVE-2026-32313) +* Bump all other dependencies + ## Version 2.3.10 Released 2025-12-08 diff --git a/extra/simplesamlphp.spec b/extra/simplesamlphp.spec index 5379051676..f7c7e8c62f 100644 --- a/extra/simplesamlphp.spec +++ b/extra/simplesamlphp.spec @@ -1,6 +1,6 @@ %define name simplesamlphp %define summary SAML IDP/SP written in PHP -%define version 2.3.10 +%define version 2.3.11 %define release 1 %define license LGPL 2.1 %define group Networking/WWW diff --git a/src/SimpleSAML/Configuration.php b/src/SimpleSAML/Configuration.php index 46cab6030f..e55cb690e4 100644 --- a/src/SimpleSAML/Configuration.php +++ b/src/SimpleSAML/Configuration.php @@ -41,7 +41,7 @@ class Configuration implements Utils\ClearableState /** * The release version of this package */ - public const VERSION = '2.3.10'; + public const VERSION = '2.3.11'; /** * A default value which means that the given option is required. From 43cadc6620ee54afb2fb255295fb6ac40cea33f0 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Thu, 21 May 2026 20:36:05 +0200 Subject: [PATCH 93/93] Bump dependencies --- composer.lock | 480 ++++++++++++++++++++++++++------------------------ 1 file changed, 247 insertions(+), 233 deletions(-) diff --git a/composer.lock b/composer.lock index 3efdec43fd..52337f256b 100644 --- a/composer.lock +++ b/composer.lock @@ -231,16 +231,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.7.1", + "version": "2.10.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" + "reference": "73ab136360b5dfd858006eae9795e8fe43c80361" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", - "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/73ab136360b5dfd858006eae9795e8fe43c80361", + "reference": "73ab136360b5dfd858006eae9795e8fe43c80361", "shasum": "" }, "require": { @@ -255,8 +255,9 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "0.9.0", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "http-interop/http-factory-tests": "1.1.0", + "jshttp/mime-db": "1.54.0.1", + "phpunit/phpunit": "^8.5.52 || ^9.6.34" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -327,7 +328,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.1" + "source": "https://github.com/guzzle/psr7/tree/2.10.1" }, "funding": [ { @@ -343,7 +344,7 @@ "type": "tidelift" } ], - "time": "2025-03-27T12:30:47+00:00" + "time": "2026-05-20T09:27:36+00:00" }, { "name": "phpmailer/phpmailer", @@ -824,16 +825,16 @@ }, { "name": "simplesamlphp/assert", - "version": "v1.8.3", + "version": "v1.8.4", "source": { "type": "git", "url": "https://github.com/simplesamlphp/assert.git", - "reference": "01b4e706daafb109e9fabbf3b4497d2f4dada035" + "reference": "7250fb858b025032590078fc4cc52a4c1b634dbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/01b4e706daafb109e9fabbf3b4497d2f4dada035", - "reference": "01b4e706daafb109e9fabbf3b4497d2f4dada035", + "url": "https://api.github.com/repos/simplesamlphp/assert/zipball/7250fb858b025032590078fc4cc52a4c1b634dbb", + "reference": "7250fb858b025032590078fc4cc52a4c1b634dbb", "shasum": "" }, "require": { @@ -841,7 +842,7 @@ "ext-filter": "*", "ext-pcre": "*", "ext-spl": "*", - "guzzlehttp/psr7": "~2.7.1", + "guzzlehttp/psr7": "~2.7", "php": "^8.1", "webmozart/assert": "~1.11.0" }, @@ -877,9 +878,9 @@ "description": "A wrapper around webmozart/assert to make it useful beyond checking method arguments", "support": { "issues": "https://github.com/simplesamlphp/assert/issues", - "source": "https://github.com/simplesamlphp/assert/tree/v1.8.3" + "source": "https://github.com/simplesamlphp/assert/tree/v1.8.4" }, - "time": "2025-10-28T16:40:50+00:00" + "time": "2026-03-18T11:27:23+00:00" }, { "name": "simplesamlphp/composer-module-installer", @@ -1130,12 +1131,12 @@ "source": { "type": "git", "url": "https://github.com/simplesamlphp/xml-security.git", - "reference": "cad6d57cf0a5a0b7e0cc4e4a5b18752e56eb1520" + "reference": "16a5cf4a107e1b607337ff5af5fb4051fcc23ba0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/cad6d57cf0a5a0b7e0cc4e4a5b18752e56eb1520", - "reference": "cad6d57cf0a5a0b7e0cc4e4a5b18752e56eb1520", + "url": "https://api.github.com/repos/simplesamlphp/xml-security/zipball/16a5cf4a107e1b607337ff5af5fb4051fcc23ba0", + "reference": "16a5cf4a107e1b607337ff5af5fb4051fcc23ba0", "shasum": "" }, "require": { @@ -1186,20 +1187,20 @@ "issues": "https://github.com/simplesamlphp/xml-security/issues", "source": "https://github.com/simplesamlphp/xml-security/tree/v1.13.9" }, - "time": "2026-03-13T12:06:16+00:00" + "time": "2026-03-13T15:41:00+00:00" }, { "name": "symfony/cache", - "version": "v6.4.35", + "version": "v6.4.40", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "77f5eca135d1b5471de4301b99496649e4f62878" + "reference": "8f9b022e63fa02bd984c06dc886039936ea17714" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/77f5eca135d1b5471de4301b99496649e4f62878", - "reference": "77f5eca135d1b5471de4301b99496649e4f62878", + "url": "https://api.github.com/repos/symfony/cache/zipball/8f9b022e63fa02bd984c06dc886039936ea17714", + "reference": "8f9b022e63fa02bd984c06dc886039936ea17714", "shasum": "" }, "require": { @@ -1266,7 +1267,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.35" + "source": "https://github.com/symfony/cache/tree/v6.4.40" }, "funding": [ { @@ -1286,20 +1287,20 @@ "type": "tidelift" } ], - "time": "2026-03-05T20:47:12+00:00" + "time": "2026-05-19T20:33:22+00:00" }, { "name": "symfony/cache-contracts", - "version": "v3.6.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868" + "reference": "225e8a254166bd3442e370c6f50145465db63831" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/5d68a57d66910405e5c0b63d6f0af941e66fc868", - "reference": "5d68a57d66910405e5c0b63d6f0af941e66fc868", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/225e8a254166bd3442e370c6f50145465db63831", + "reference": "225e8a254166bd3442e370c6f50145465db63831", "shasum": "" }, "require": { @@ -1313,7 +1314,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -1346,7 +1347,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/cache-contracts/tree/v3.7.0" }, "funding": [ { @@ -1357,25 +1358,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-03-13T15:25:07+00:00" + "time": "2026-05-05T15:33:14+00:00" }, { "name": "symfony/config", - "version": "v6.4.34", + "version": "v6.4.37", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "ce9cb0c0d281aaf188b802d4968e42bfb60701e9" + "reference": "ee615e8352db9c5f0b7b149154a3f654dc72042b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/ce9cb0c0d281aaf188b802d4968e42bfb60701e9", - "reference": "ce9cb0c0d281aaf188b802d4968e42bfb60701e9", + "url": "https://api.github.com/repos/symfony/config/zipball/ee615e8352db9c5f0b7b149154a3f654dc72042b", + "reference": "ee615e8352db9c5f0b7b149154a3f654dc72042b", "shasum": "" }, "require": { @@ -1421,7 +1426,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.4.34" + "source": "https://github.com/symfony/config/tree/v6.4.37" }, "funding": [ { @@ -1441,20 +1446,20 @@ "type": "tidelift" } ], - "time": "2026-02-24T17:34:50+00:00" + "time": "2026-04-29T10:19:30+00:00" }, { "name": "symfony/console", - "version": "v6.4.35", + "version": "v6.4.39", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "49257c96304c508223815ee965c251e7c79e614e" + "reference": "c132f1215fe4aa45b70173cc00ce9a755dd31ec5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/49257c96304c508223815ee965c251e7c79e614e", - "reference": "49257c96304c508223815ee965c251e7c79e614e", + "url": "https://api.github.com/repos/symfony/console/zipball/c132f1215fe4aa45b70173cc00ce9a755dd31ec5", + "reference": "c132f1215fe4aa45b70173cc00ce9a755dd31ec5", "shasum": "" }, "require": { @@ -1519,7 +1524,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.35" + "source": "https://github.com/symfony/console/tree/v6.4.39" }, "funding": [ { @@ -1539,20 +1544,20 @@ "type": "tidelift" } ], - "time": "2026-03-06T13:31:08+00:00" + "time": "2026-05-12T06:50:03+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.4.35", + "version": "v6.4.38", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "d95712d0e9446b9f244b64811ffb6af7b7434213" + "reference": "f0990df92ee67721886a2a8b6e19a1bafbf3d7a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/d95712d0e9446b9f244b64811ffb6af7b7434213", - "reference": "d95712d0e9446b9f244b64811ffb6af7b7434213", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/f0990df92ee67721886a2a8b6e19a1bafbf3d7a4", + "reference": "f0990df92ee67721886a2a8b6e19a1bafbf3d7a4", "shasum": "" }, "require": { @@ -1604,7 +1609,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.4.35" + "source": "https://github.com/symfony/dependency-injection/tree/v6.4.38" }, "funding": [ { @@ -1624,20 +1629,20 @@ "type": "tidelift" } ], - "time": "2026-02-26T12:16:01+00:00" + "time": "2026-05-04T13:00:01+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.6.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b", + "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b", "shasum": "" }, "require": { @@ -1650,7 +1655,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -1675,7 +1680,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0" }, "funding": [ { @@ -1686,25 +1691,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2026-04-13T15:52:40+00:00" }, { "name": "symfony/error-handler", - "version": "v6.4.32", + "version": "v6.4.36", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8c18400784fcb014dc73c8d5601a9576af7f8ad4" + "reference": "2ea68f0e1835ad6a126f93bbc14cd236c10ab361" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8c18400784fcb014dc73c8d5601a9576af7f8ad4", - "reference": "8c18400784fcb014dc73c8d5601a9576af7f8ad4", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/2ea68f0e1835ad6a126f93bbc14cd236c10ab361", + "reference": "2ea68f0e1835ad6a126f93bbc14cd236c10ab361", "shasum": "" }, "require": { @@ -1750,7 +1759,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.32" + "source": "https://github.com/symfony/error-handler/tree/v6.4.36" }, "funding": [ { @@ -1770,20 +1779,20 @@ "type": "tidelift" } ], - "time": "2026-01-19T19:28:19+00:00" + "time": "2026-03-10T15:56:14+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.4.32", + "version": "v6.4.37", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "99d7e101826e6610606b9433248f80c1997cd20b" + "reference": "2e3bf817ba9347341ab15926700fb6320367c0e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99d7e101826e6610606b9433248f80c1997cd20b", - "reference": "99d7e101826e6610606b9433248f80c1997cd20b", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2e3bf817ba9347341ab15926700fb6320367c0e1", + "reference": "2e3bf817ba9347341ab15926700fb6320367c0e1", "shasum": "" }, "require": { @@ -1834,7 +1843,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/v6.4.32" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.37" }, "funding": [ { @@ -1854,20 +1863,20 @@ "type": "tidelift" } ], - "time": "2026-01-05T11:13:48+00:00" + "time": "2026-04-13T14:11:12+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.6.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586" + "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/ccba7060602b7fed0b03c85bf025257f76d9ef32", + "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32", "shasum": "" }, "require": { @@ -1881,7 +1890,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -1914,7 +1923,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.0" }, "funding": [ { @@ -1925,25 +1934,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2026-01-05T13:30:16+00:00" }, { "name": "symfony/filesystem", - "version": "v6.4.34", + "version": "v6.4.39", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "01ffe0411b842f93c571e5c391f289c3fdd498c3" + "reference": "c507b077756b4e3e09adbbe7975fac81cd3722ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/01ffe0411b842f93c571e5c391f289c3fdd498c3", - "reference": "01ffe0411b842f93c571e5c391f289c3fdd498c3", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/c507b077756b4e3e09adbbe7975fac81cd3722ca", + "reference": "c507b077756b4e3e09adbbe7975fac81cd3722ca", "shasum": "" }, "require": { @@ -1980,7 +1993,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.34" + "source": "https://github.com/symfony/filesystem/tree/v6.4.39" }, "funding": [ { @@ -2000,7 +2013,7 @@ "type": "tidelift" } ], - "time": "2026-02-24T17:51:06+00:00" + "time": "2026-05-07T13:11:42+00:00" }, { "name": "symfony/finder", @@ -2072,16 +2085,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v6.4.35", + "version": "v6.4.39", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "2e065db347ef1c2d1d4b916c860f9782c9060221" + "reference": "a9cd7d768b9658fb8e9fa505ade58e5211ed7049" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/2e065db347ef1c2d1d4b916c860f9782c9060221", - "reference": "2e065db347ef1c2d1d4b916c860f9782c9060221", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/a9cd7d768b9658fb8e9fa505ade58e5211ed7049", + "reference": "a9cd7d768b9658fb8e9fa505ade58e5211ed7049", "shasum": "" }, "require": { @@ -2117,7 +2130,7 @@ "symfony/lock": "<5.4", "symfony/mailer": "<5.4", "symfony/messenger": "<6.3", - "symfony/mime": "<6.4", + "symfony/mime": "<6.4.37|>=7.0,<7.4.9", "symfony/property-access": "<5.4", "symfony/property-info": "<5.4", "symfony/runtime": "<5.4.45|>=6.0,<6.4.13|>=7.0,<7.1.6", @@ -2154,7 +2167,7 @@ "symfony/lock": "^5.4|^6.0|^7.0", "symfony/mailer": "^5.4|^6.0|^7.0", "symfony/messenger": "^6.3|^7.0", - "symfony/mime": "^6.4|^7.0", + "symfony/mime": "^6.4.37|^7.4.9", "symfony/notifier": "^5.4|^6.0|^7.0", "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "^5.4|^6.0|^7.0", @@ -2201,7 +2214,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.4.35" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.39" }, "funding": [ { @@ -2221,7 +2234,7 @@ "type": "tidelift" } ], - "time": "2026-03-06T11:15:58+00:00" + "time": "2026-05-13T11:43:22+00:00" }, { "name": "symfony/http-foundation", @@ -2306,16 +2319,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.35", + "version": "v6.4.40", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "ece1a0da7745a5243683f178155c0412c92691eb" + "reference": "41dff5c3d03b3fa20947c552c5f6ba74ca43fa28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ece1a0da7745a5243683f178155c0412c92691eb", - "reference": "ece1a0da7745a5243683f178155c0412c92691eb", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/41dff5c3d03b3fa20947c552c5f6ba74ca43fa28", + "reference": "41dff5c3d03b3fa20947c552c5f6ba74ca43fa28", "shasum": "" }, "require": { @@ -2400,7 +2413,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.35" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.40" }, "funding": [ { @@ -2420,20 +2433,20 @@ "type": "tidelift" } ], - "time": "2026-03-06T16:28:07+00:00" + "time": "2026-05-20T08:55:59+00:00" }, { "name": "symfony/intl", - "version": "v6.4.34", + "version": "v6.4.36", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "ea1b1c555e3f0c6850605307717423ff3a0407ad" + "reference": "026d246f3d2f6136db43d17b4ccb14b34d8e779a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/ea1b1c555e3f0c6850605307717423ff3a0407ad", - "reference": "ea1b1c555e3f0c6850605307717423ff3a0407ad", + "url": "https://api.github.com/repos/symfony/intl/zipball/026d246f3d2f6136db43d17b4ccb14b34d8e779a", + "reference": "026d246f3d2f6136db43d17b4ccb14b34d8e779a", "shasum": "" }, "require": { @@ -2487,7 +2500,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.34" + "source": "https://github.com/symfony/intl/tree/v6.4.36" }, "funding": [ { @@ -2507,7 +2520,7 @@ "type": "tidelift" } ], - "time": "2026-02-08T20:40:30+00:00" + "time": "2026-03-24T11:36:52+00:00" }, { "name": "symfony/password-hasher", @@ -2587,16 +2600,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + "reference": "141046a8f9477948ff284fa65be2095baafb94f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2", + "reference": "141046a8f9477948ff284fa65be2095baafb94f2", "shasum": "" }, "require": { @@ -2646,7 +2659,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0" }, "funding": [ { @@ -2666,20 +2679,20 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-04-10T16:19:22+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" + "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e", + "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e", "shasum": "" }, "require": { @@ -2728,7 +2741,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0" }, "funding": [ { @@ -2748,20 +2761,20 @@ "type": "tidelift" } ], - "time": "2025-06-27T09:58:17+00:00" + "time": "2026-04-26T13:13:48+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c" + "reference": "3510b63d07376b04e57e27e82607d468bb134f78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c", - "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/3510b63d07376b04e57e27e82607d468bb134f78", + "reference": "3510b63d07376b04e57e27e82607d468bb134f78", "shasum": "" }, "require": { @@ -2816,7 +2829,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.37.0" }, "funding": [ { @@ -2836,11 +2849,11 @@ "type": "tidelift" } ], - "time": "2025-06-20T22:24:30+00:00" + "time": "2026-04-10T16:50:15+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -2901,7 +2914,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0" }, "funding": [ { @@ -2925,16 +2938,16 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315", + "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315", "shasum": "" }, "require": { @@ -2986,7 +2999,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0" }, "funding": [ { @@ -3006,20 +3019,20 @@ "type": "tidelift" } ], - "time": "2024-12-23T08:48:59+00:00" + "time": "2026-04-10T17:25:58+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.33.0", + "version": "v1.37.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" + "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/3600c2cb22399e25bb226e4a135ce91eeb2a6149", + "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149", "shasum": "" }, "require": { @@ -3066,7 +3079,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.37.0" }, "funding": [ { @@ -3086,20 +3099,20 @@ "type": "tidelift" } ], - "time": "2025-07-08T02:45:35+00:00" + "time": "2026-04-10T17:25:58+00:00" }, { "name": "symfony/routing", - "version": "v6.4.34", + "version": "v6.4.40", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47" + "reference": "0cd0d2fb05382c95dff6b33c51a7c96cbdbc136d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", - "reference": "5ab3a3e1a03535ec5ca6ce2d39e4369a1096ae47", + "url": "https://api.github.com/repos/symfony/routing/zipball/0cd0d2fb05382c95dff6b33c51a7c96cbdbc136d", + "reference": "0cd0d2fb05382c95dff6b33c51a7c96cbdbc136d", "shasum": "" }, "require": { @@ -3153,7 +3166,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.34" + "source": "https://github.com/symfony/routing/tree/v6.4.40" }, "funding": [ { @@ -3173,20 +3186,20 @@ "type": "tidelift" } ], - "time": "2026-02-24T17:34:50+00:00" + "time": "2026-05-19T20:33:22+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.1", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" + "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a", + "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a", "shasum": "" }, "require": { @@ -3204,7 +3217,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -3240,7 +3253,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.0" }, "funding": [ { @@ -3260,20 +3273,20 @@ "type": "tidelift" } ], - "time": "2025-07-15T11:30:57+00:00" + "time": "2026-03-28T09:44:51+00:00" }, { "name": "symfony/string", - "version": "v6.4.34", + "version": "v6.4.39", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "2adaf4106f2ef4c67271971bde6d3fe0a6936432" + "reference": "62e3c927de664edadb5bef260987eb047a17a113" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/2adaf4106f2ef4c67271971bde6d3fe0a6936432", - "reference": "2adaf4106f2ef4c67271971bde6d3fe0a6936432", + "url": "https://api.github.com/repos/symfony/string/zipball/62e3c927de664edadb5bef260987eb047a17a113", + "reference": "62e3c927de664edadb5bef260987eb047a17a113", "shasum": "" }, "require": { @@ -3329,7 +3342,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.34" + "source": "https://github.com/symfony/string/tree/v6.4.39" }, "funding": [ { @@ -3349,20 +3362,20 @@ "type": "tidelift" } ], - "time": "2026-02-08T20:44:54+00:00" + "time": "2026-05-12T11:44:19+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.6.1", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "65a8bc82080447fae78373aa10f8d13b38338977" + "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", - "reference": "65a8bc82080447fae78373aa10f8d13b38338977", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0ab302977a952b42fd51475c4ebac81f8da0a95d", + "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d", "shasum": "" }, "require": { @@ -3375,7 +3388,7 @@ "name": "symfony/contracts" }, "branch-alias": { - "dev-main": "3.6-dev" + "dev-main": "3.7-dev" } }, "autoload": { @@ -3411,7 +3424,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.7.0" }, "funding": [ { @@ -3431,20 +3444,20 @@ "type": "tidelift" } ], - "time": "2025-07-15T13:41:35+00:00" + "time": "2026-01-05T13:30:16+00:00" }, { "name": "symfony/twig-bridge", - "version": "v6.4.35", + "version": "v6.4.40", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "352acf608d1c9c00692fc3bba9f445176c14ce0f" + "reference": "5a68963b44e9a7089415540908c61de976c1ae34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/352acf608d1c9c00692fc3bba9f445176c14ce0f", - "reference": "352acf608d1c9c00692fc3bba9f445176c14ce0f", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/5a68963b44e9a7089415540908c61de976c1ae34", + "reference": "5a68963b44e9a7089415540908c61de976c1ae34", "shasum": "" }, "require": { @@ -3460,7 +3473,7 @@ "symfony/form": "<6.4.32|>7,<7.3.10|>7.4,<7.4.4", "symfony/http-foundation": "<5.4", "symfony/http-kernel": "<6.4", - "symfony/mime": "<6.2", + "symfony/mime": "<6.4.37|>=7.0,<7.4.9", "symfony/serializer": "<6.4", "symfony/translation": "<5.4", "symfony/workflow": "<5.4" @@ -3480,7 +3493,7 @@ "symfony/http-foundation": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^6.4|^7.0", "symfony/intl": "^5.4|^6.0|^7.0", - "symfony/mime": "^6.2|^7.0", + "symfony/mime": "^6.4.37|^7.4.9", "symfony/polyfill-intl-icu": "~1.0", "symfony/property-info": "^5.4|^6.0|^7.0", "symfony/routing": "^5.4|^6.0|^7.0", @@ -3524,7 +3537,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.35" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.40" }, "funding": [ { @@ -3544,20 +3557,20 @@ "type": "tidelift" } ], - "time": "2026-03-04T15:30:31+00:00" + "time": "2026-05-11T09:54:00+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.32", + "version": "v6.4.36", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "131fc9915e0343052af5ed5040401b481ca192aa" + "reference": "7c8ad9ce4faf6c8a99948e70ce02b601a0439782" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/131fc9915e0343052af5ed5040401b481ca192aa", - "reference": "131fc9915e0343052af5ed5040401b481ca192aa", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7c8ad9ce4faf6c8a99948e70ce02b601a0439782", + "reference": "7c8ad9ce4faf6c8a99948e70ce02b601a0439782", "shasum": "" }, "require": { @@ -3612,7 +3625,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.32" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.36" }, "funding": [ { @@ -3632,20 +3645,20 @@ "type": "tidelift" } ], - "time": "2026-01-01T13:34:06+00:00" + "time": "2026-03-30T15:36:00+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.26", + "version": "v6.4.37", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc" + "reference": "34f6957deffacabd1b1c579a312daa481e3e99ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/466fcac5fa2e871f83d31173f80e9c2684743bfc", - "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/34f6957deffacabd1b1c579a312daa481e3e99ca", + "reference": "34f6957deffacabd1b1c579a312daa481e3e99ca", "shasum": "" }, "require": { @@ -3693,7 +3706,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.26" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.37" }, "funding": [ { @@ -3713,20 +3726,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T09:57:09+00:00" + "time": "2026-04-14T12:12:40+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.34", + "version": "v6.4.40", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "7bca30dabed7900a08c5ad4f1d6483f881a64d0f" + "reference": "68dcd1f1602dac9d9221e25729683e0ce8733f3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/7bca30dabed7900a08c5ad4f1d6483f881a64d0f", - "reference": "7bca30dabed7900a08c5ad4f1d6483f881a64d0f", + "url": "https://api.github.com/repos/symfony/yaml/zipball/68dcd1f1602dac9d9221e25729683e0ce8733f3b", + "reference": "68dcd1f1602dac9d9221e25729683e0ce8733f3b", "shasum": "" }, "require": { @@ -3769,7 +3782,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.34" + "source": "https://github.com/symfony/yaml/tree/v6.4.40" }, "funding": [ { @@ -3789,20 +3802,20 @@ "type": "tidelift" } ], - "time": "2026-02-06T18:32:11+00:00" + "time": "2026-05-19T20:33:22+00:00" }, { "name": "twig/intl-extra", - "version": "v3.23.0", + "version": "v3.26.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f" + "reference": "98f5ad5bff13230fcd2d834d9e79b50adf3ccda9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f", - "reference": "32f15a38d45a8d0ec11bc8a3d97d3ac2a261499f", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/98f5ad5bff13230fcd2d834d9e79b50adf3ccda9", + "reference": "98f5ad5bff13230fcd2d834d9e79b50adf3ccda9", "shasum": "" }, "require": { @@ -3841,7 +3854,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.23.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.26.0" }, "funding": [ { @@ -3853,20 +3866,20 @@ "type": "tidelift" } ], - "time": "2026-01-17T13:57:47+00:00" + "time": "2026-05-19T20:44:48+00:00" }, { "name": "twig/twig", - "version": "v3.23.0", + "version": "v3.26.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9" + "reference": "1fcae487b180d78e6351f4e0afa91f9eab96a2bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", - "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/1fcae487b180d78e6351f4e0afa91f9eab96a2bc", + "reference": "1fcae487b180d78e6351f4e0afa91f9eab96a2bc", "shasum": "" }, "require": { @@ -3876,7 +3889,8 @@ "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { - "phpstan/phpstan": "^2.0", + "php-cs-fixer/shim": "^3.0@stable", + "phpstan/phpstan": "^2.0@stable", "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, @@ -3920,7 +3934,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.23.0" + "source": "https://github.com/twigphp/Twig/tree/v3.26.0" }, "funding": [ { @@ -3932,7 +3946,7 @@ "type": "tidelift" } ], - "time": "2026-01-23T21:00:41+00:00" + "time": "2026-05-20T07:31:59+00:00" }, { "name": "webmozart/assert", @@ -3996,16 +4010,16 @@ "packages-dev": [ { "name": "dealerdirect/phpcodesniffer-composer-installer", - "version": "v1.2.0", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/composer-installer.git", - "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1" + "reference": "963f0c67bffde0eac41b56be71ac0e8ba132f0bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1", - "reference": "845eb62303d2ca9b289ef216356568ccc075ffd1", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/963f0c67bffde0eac41b56be71ac0e8ba132f0bd", + "reference": "963f0c67bffde0eac41b56be71ac0e8ba132f0bd", "shasum": "" }, "require": { @@ -4088,7 +4102,7 @@ "type": "thanks_dev" } ], - "time": "2025-11-11T04:32:07+00:00" + "time": "2026-05-06T08:26:05+00:00" }, { "name": "gettext/php-scanner", @@ -6075,16 +6089,16 @@ }, { "name": "simplesamlphp/saml2-legacy", - "version": "v4.19.1", + "version": "v4.19.2", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2-legacy.git", - "reference": "a9812c7fc0bb7cee9ce001e8cc94570c37acdfb2" + "reference": "93df4bffc052939e74ec0c1208e66cbd7eb2a1b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/a9812c7fc0bb7cee9ce001e8cc94570c37acdfb2", - "reference": "a9812c7fc0bb7cee9ce001e8cc94570c37acdfb2", + "url": "https://api.github.com/repos/simplesamlphp/saml2-legacy/zipball/93df4bffc052939e74ec0c1208e66cbd7eb2a1b2", + "reference": "93df4bffc052939e74ec0c1208e66cbd7eb2a1b2", "shasum": "" }, "require": { @@ -6093,7 +6107,7 @@ "ext-zlib": "*", "php": ">=7.1 || ^8.0", "psr/log": "~1.1 || ^2.0 || ^3.0", - "robrichards/xmlseclibs": "^3.1.4", + "robrichards/xmlseclibs": "^3.1.5", "webmozart/assert": "^1.9" }, "conflict": { @@ -6129,9 +6143,9 @@ ], "description": "SAML2 PHP library from SimpleSAMLphp", "support": { - "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.19.1" + "source": "https://github.com/simplesamlphp/saml2-legacy/tree/v4.19.2" }, - "time": "2025-12-08T12:05:03+00:00" + "time": "2026-03-13T12:09:45+00:00" }, { "name": "simplesamlphp/simplesamlphp-module-adfs", @@ -6249,20 +6263,20 @@ }, { "name": "slevomat/coding-standard", - "version": "8.28.0", + "version": "8.29.0", "source": { "type": "git", "url": "https://github.com/slevomat/coding-standard.git", - "reference": "0cd4b30cc1037eca54091c188d260d570e61770c" + "reference": "81fce13c4ef4b53a03e5cfa6ce36afc191c1598e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/0cd4b30cc1037eca54091c188d260d570e61770c", - "reference": "0cd4b30cc1037eca54091c188d260d570e61770c", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/81fce13c4ef4b53a03e5cfa6ce36afc191c1598e", + "reference": "81fce13c4ef4b53a03e5cfa6ce36afc191c1598e", "shasum": "" }, "require": { - "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.2.0", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7 || ^1.2.1", "php": "^7.4 || ^8.0", "phpstan/phpdoc-parser": "^2.3.2", "squizlabs/php_codesniffer": "^4.0.1" @@ -6270,11 +6284,11 @@ "require-dev": { "phing/phing": "3.0.1|3.1.2", "php-parallel-lint/php-parallel-lint": "1.4.0", - "phpstan/phpstan": "2.1.40", + "phpstan/phpstan": "2.1.54", "phpstan/phpstan-deprecation-rules": "2.0.4", "phpstan/phpstan-phpunit": "2.0.16", - "phpstan/phpstan-strict-rules": "2.0.10", - "phpunit/phpunit": "9.6.34|10.5.63|11.4.4|11.5.50|12.5.14" + "phpstan/phpstan-strict-rules": "2.0.11", + "phpunit/phpunit": "9.6.34|10.5.63|11.4.4|11.5.55|12.5.24" }, "type": "phpcodesniffer-standard", "extra": { @@ -6298,7 +6312,7 @@ ], "support": { "issues": "https://github.com/slevomat/coding-standard/issues", - "source": "https://github.com/slevomat/coding-standard/tree/8.28.0" + "source": "https://github.com/slevomat/coding-standard/tree/8.29.0" }, "funding": [ { @@ -6310,7 +6324,7 @@ "type": "tidelift" } ], - "time": "2026-02-23T21:35:24+00:00" + "time": "2026-05-07T05:48:08+00:00" }, { "name": "squizlabs/php_codesniffer", @@ -6393,16 +6407,16 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v7.4.7", + "version": "v7.4.8", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f" + "reference": "140bbbe1cd1c21a084494ccddeee33f3c3381d7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f", - "reference": "53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/140bbbe1cd1c21a084494ccddeee33f3c3381d7d", + "reference": "140bbbe1cd1c21a084494ccddeee33f3c3381d7d", "shasum": "" }, "require": { @@ -6454,7 +6468,7 @@ "testing" ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.7" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.8" }, "funding": [ { @@ -6474,20 +6488,20 @@ "type": "tidelift" } ], - "time": "2026-03-04T13:54:41+00:00" + "time": "2026-03-24T13:12:05+00:00" }, { "name": "symfony/translation", - "version": "v6.4.34", + "version": "v6.4.38", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "d07d117db41341511671b0a1a2be48f2772189ce" + "reference": "afaa31b0c12d9a659eed1ea97f268a614cc1299c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/d07d117db41341511671b0a1a2be48f2772189ce", - "reference": "d07d117db41341511671b0a1a2be48f2772189ce", + "url": "https://api.github.com/repos/symfony/translation/zipball/afaa31b0c12d9a659eed1ea97f268a614cc1299c", + "reference": "afaa31b0c12d9a659eed1ea97f268a614cc1299c", "shasum": "" }, "require": { @@ -6553,7 +6567,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.34" + "source": "https://github.com/symfony/translation/tree/v6.4.38" }, "funding": [ { @@ -6573,7 +6587,7 @@ "type": "tidelift" } ], - "time": "2026-02-16T20:44:03+00:00" + "time": "2026-05-06T08:55:54+00:00" }, { "name": "theseer/tokenizer",