User tests: Successful: Unsuccessful:
Pull Request for Issue #46295.
After migrating to the Framework HTTP package, some Joomla HTTP requests are sent without a User-Agent header, which can cause servers or firewalls to block them (e.g., during extension updates). This PR resolves the issue by ensuring Joomlaβs default User-Agent is applied to these requests.
This PR makes change to different part of our code base, it will require carefully code review and approve from at least one maintainer
There are some important areas which needs to be tested:
Use Joomla 6 (6.0.2 or nightly build)
Apply patch from this PR
Test update Joomla: Change You Joomla update to use this custom update server: https://artifacts.joomla.org/drone/joomla/joomla-cms/6.0-dev/46553/downloads/90762/pr_list.xml , then run the update and make sure it is updated properly
Test extension update: Install an old version of the extension, for example Akeeba backup 10.0.4 https://www.akeeba.com/download/akeeba-backup/10-0-4.html , then try to update to latest version of the extension uses Joomla updater and make sure it is still working
Test change to Languages model: Access to System - Manage - Languages, click on Install Languages button, make sure there is no error on the next page which display list of languages.
Would be great if you can also test the behavior of the following plugins, but not required
Some http requests sent from Joomla without User-Agent header
All http requests sent from Joomla contains User-Agent header
Please select:
Documentation link for docs.joomla.org:
No documentation changes for docs.joomla.org needed
Pull Request link for manual.joomla.org:
No documentation changes for manual.joomla.org needed
| Status | New | ⇒ | Pending |
| Category | ⇒ | Administration com_installer com_joomlaupdate Libraries Front End Plugins |
| Labels |
Added:
PR-6.0-dev
|
||
@joomdonation
Too much code duplication, it's better to keep using framework HTTP class but keep \Joomla\CMS\Http\HttpFactory which will auto-inject header by default (like in current 6.0.1)? CMS factory should be just rewritten a bit.
It's normal to use framework package but have CMS-specific factory which will resolve HTTP class with CMS-specific options.
@AlterBrains Thanks for your feedback and Yes, I agree with you that there is too much code duplication and that should be improved. However :
So think about this PR as a bugs fix to avoid these http requests being blocked by WAF as described in original issue due to missing user-agent. And then we will have to more to implement a proper solution in 6.1
There are some changes to TUF related code which I do not understand the internal yet. I'm unsure if test update Joomla use Custom update server cover it or not. Could you please help reviewing to make sure it is OK, thanks.
LGTM
So think about this PR as a bugs fix to avoid these http requests being blocked by WAF as described in original issue due to missing user-agent. And then we will have to more to implement a proper solution in 6.1
Maybe a simple fix is just to reset back a default userAgent in the framework HttpFactory as it is done in CMS http package (used in updater before 6.0).
I did a PR on framework for that: joomla-framework/http#71
The changes were introduced by this PR: #45751
I did a PR on framework for that: joomla-framework/http#71
@cyrez The framework is independent with the CMS, we do not have CMS version available, so your PR would not work.
I did a PR on framework for that: joomla-framework/http#71
@cyrez The framework is independent with the CMS, we do not have CMS version available, so your PR would not work.
Oh yes, you're right!
Updated it, tested and it works now (at least with the firewall on my hosting).
Updated it, tested and it works now (at least with the firewall on my hosting).
Did you mean you tested this PR? If Yes, could you please report your test result? The issue addressed in this PR should be fixed
I have tested this item β
successfully on dfd421d
Tested succesfully for this dfd421d as per the testing instruction .
Updated it, tested and it works now (at least with the firewall on my hosting).
Did you mean you tested this PR? If Yes, could you please report your test result? The issue addressed in this PR should be fixed
No, i meant the PR i did in the framework.
Updated it, tested and it works now (at least with the firewall on my hosting).
Did you mean you tested this PR? If Yes, could you please report your test result? The issue addressed in this PR should be fixed
I will test it tomorrow, during PBF.
Could you maybe review the test instructions?
As it could be Joomla 6.0.2.
Too, is the URL https://artifacts.joomla.org/drone/joomla/joomla-cms/6.0-dev/46553/downloads/89844/pr_list.xml still valid?
About your test instructions, i supposed it fails before patch, and works after patch?
This could help to get more testers from PBF ;-)
On my side, i will do test with my own extension and own hosting server, enabling their firewall (which makes update fail) to test if it works with your patch. But by reviewing your code changes, it seems to be ok.
Thanks!
| Labels |
Added:
PBF
bug
|
||
Thanks @cyrez . I updated testing instructions. The PR was from sometime ago, so the old download is not available anymore. I updated the testing instructions to use new URL https://artifacts.joomla.org/drone/joomla/joomla-cms/6.0-dev/46553/downloads/90762/pr_list.xml .
I have tested this item β
successfully on 72a83b8
Thank you @joomdonation
I have tested this item β
successfully on 72a83b8
Hi @joomdonation - I was able to test this successfully!
Joomla update = π
Installed 2 different 3rd party extensions update = π
Installed additional German Languages model = π
I don't have a YubiKey so couldn't test that but tried PassKey Multifactor (unsure if that helped) = π
:)
I tried to test the PR. Here is what I did:
But checking the access log, I couldn't find any user agents. Here is the access log:
accesslog_46553.zip
Is this related to my basic setup (Laragon on localhost, Windows 11)? Or did I miss something? Do I have to set a backend option?
@dautrich Thanks for testing. In this case, these requests are sent to external servers, not the server where you site is hosted. So the user agent will be shown in access logs of these external servers (like Joomla server will you update Joomla, Akeeba server when you update Akeeba Backup....).
With your tests, all your operations are completed without any issues, so I will still count this as a success test.
| Status | Pending | ⇒ | Ready to Commit |
RTC
I have tested this item β successfully on 72a83b8
@dautrich Thanks for testing. In this case, these requests are sent to external servers, not the server where you site is hosted. So the user agent will be shown in access logs of these external servers (like Joomla server will you update Joomla, Akeeba server when you update Akeeba Backup....).
With your tests, all your operations are completed without any issues, so I will still count this as a success test.
You're perfectly right! The Get Request Task I used for testing went to one of my sites. I was able to find several of the resulting entries in my server's log:
185.17.205.0 - - [31/Jan/2026:18:22:35 +0100] "GET / HTTP/2.0" 200 68619 "-" "Mozilla/5.0 Joomla!/6.0.3-dev+pr.46553 Joomla"
@SniperSister There are some changes to TUF related code which I do not understand the internal yet. I'm unsure if test update Joomla use Custom update server cover it or not. Could you please help reviewing to make sure it is OK, thanks.