- 🇺🇸United States danflanagan8 St. Louis, US
I'm looking into getting this module working on D10. Here's something that will need to be addressed: https://www.drupal.org/node/3187914 →
I'm trying to write some tests for the module but I'm having a hard time with the csrf_token_seed
- 🇺🇸United States danflanagan8 St. Louis, US
I'm also seeing this as I'm building out tests.
Calling Drupal\Core\Session\SessionManager::getId() outside of an actual existing session is deprecated in drupal:9.2.0 and will be removed in drupal:10.0.0. This is often used for anonymous users. See https://www.drupal.org/node/3006306
So that's something that will need to be addressed as well. :(
- 🇺🇸United States danflanagan8 St. Louis, US
I made another issue for adding test coverage that I wrote as part of checking out the D10 compatibility: 📌 Add automated test coverage for anonymous_token Fixed
The tests pass on D9.5 but with the following warnings:
2x: Calling Drupal\Core\Session\SessionManager::getId() outside of an actual existing session is deprecated in drupal:9.2.0 and will be removed in drupal:10.0.0. This is often used for anonymous users. See https://www.drupal.org/node/3006306 2x in AnonymousTokenTest::testAnonymousToken from Drupal\Tests\anonymous_token\Functional 1x: Calling Drupal\Core\Session\MetadataBag::clearCsrfTokenSeed() is deprecated in drupal:9.2.0 and will be removed in drupal:10.0.0. Use \Drupal\Core\Session\MetadataBag::stampNew() instead. See https://www.drupal.org/node/3187914 1x in AnonymousTokenTest::testAnonymousToken from Drupal\Tests\anonymous_token\Functional
The test fails on D10 due to MetadataBag::clearCsrfTokenSeed being undefined. The
SessionManager::getId()
thing doesn't seem to cause a failure. I would still think that needs to be addressed. Sessions are not something I usually think about. - Status changed to Needs review
almost 2 years ago 9:00pm 9 March 2023 - 🇺🇸United States danflanagan8 St. Louis, US
Here's a patch that addresses the items in #6 and updates the core version requirement, which starts at 9.2 because that's when
MetadataBag::stampNew
was added. - 🇺🇸United States danflanagan8 St. Louis, US
I queued the patch for testing against D10.1 and as I recalled you can't up core version requirement in a patch and run tests with the patch. I think I can open an MR and get tests to run there though so I'm going to try that.
- @danflanagan8 opened merge request.
- 🇺🇸United States danflanagan8 St. Louis, US
Hooray! The tests are passing on D9.5 and D10.1. This is ready for a real review.
I wanted to explain one change that may be a bit mysterious.
+++ b/src/Access/AnonymousCsrfTokenGenerator.php @@ -68,7 +69,7 @@ class AnonymousCsrfTokenGenerator extends CsrfTokenGenerator { public function get($value = '') { if ($this->session->isStarted() === FALSE) { - $this->session->set('anon_session_id', $this->session->getId()); + $this->session->set('anon_session_id', Crypt::randomBytesBase64()); } return parent::get($value);
I made this change because of the deprecation in
Drupal\Core\Session\SessionManager::getId()
described in #6. Per the comment with theAnonymousCsrfTokenGenerator::get()
method, the important thing here is that we add SOMETHING to the sessions so that the session persists. I think we could add anything, butCrypt::randomBytesBase64()
looks pretty popular in the csrf space. It doesn't look likeanon_session_id
has any special significance beyond just being SOMETHING that we add such that the session persists. I'm not an expert here though, to be honest.All the others changes should be clear though. Thanks!
- last update
over 1 year ago 1 pass - last update
over 1 year ago 1 pass - 🇮🇳India Aziza Anwari Gujarat
Thank you so much @danflanagan8 for this beautiful patch, have tried it for 2.x-dev, and works well
moving it to RTBCAttaching upgrade status report image, that it makes it compatible with drupal 10
- Status changed to RTBC
over 1 year ago 9:29am 17 August 2023 - last update
over 1 year ago 1 pass - last update
over 1 year ago 1 pass - 🇮🇳India Aziza Anwari Gujarat
Adding patch version as well for immediate use,
inspired by the #9 merge request from danflanagan8 - last update
about 1 year ago Composer require failure - 🇧🇪Belgium baikho Antwerp, BE
Thanks all, I'm adding a new major version branch, given the Core deprecations.
-
baikho →
committed 3053b7d6 on 3.x authored by
danflanagan8 →
Issue #3286078: Automated Drupal 10 compatibility fixes
-
baikho →
committed 3053b7d6 on 3.x authored by
danflanagan8 →
- Status changed to Fixed
about 1 year ago 12:04pm 13 October 2023 Automatically closed - issue fixed for 2 weeks with no activity.