Domain-based language negotiation strips "destination" URL query argument, causing BigPipe error

Created on 19 June 2018, about 6 years ago
Updated 3 June 2024, 25 days ago

Problem/Motivation

When using domain language negotiation the destination parameter can be stripped.

Steps to reproduce:

  1. Install standard
  2. Install the language module
  3. Add second language
  4. Go to Configuration > Regional and language > Languages > Detection, click on Domain and make up some configuration and save it.
  5. Visit /admin/structure/block
  6. Click the seven link in local tasks
  7. Click remove on the first block
  8. Click click the remove button
  9. You should be on admin/structure/block/list/seven but you're on admin/structure/block

This can also cause errors with disabled javascript, domain language negotiation and Big Pipe enabled:

"Symfony\Component\HttpKernel\Exception\HttpException: The original location is missing. Drupal\big_pipe\Controller\BigPipeController->setNoJsCookie() (line 50 /core/modules/big_pipe/src/Controller/BigPipeController.php)"

Proposed resolution

Fix the \Drupal\Core\Security\RequestSanitizer to use \Drupal\Component\Utility\UrlHelper::externalIsLocal() to determine is an external URL is really external.

Remaining tasks

User interface changes

None

API changes

None

Data model changes

None

Release notes snippet

N/a

🐛 Bug report
Status

Closed: duplicate

Version

11.0 🔥

Component
Language system 

Last updated about 10 hours ago

  • Maintained by
  • 🇩🇪Germany @sun
Created by

🇬🇷Greece Yiannis.Tzikas.Ziogos

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.69.0 2024