?
avatar github-us3r
github-us3r
28 Aug 2014

Steps to reproduce the issue

1) Force SSL (w/ cert properly installed) site-wide or frontend.
2) Set user login module 'Encrypt Login Form' to >> 'Yes'

Expected result

When setting the user login module 'Encrypt Login Form' setting to >> 'Yes', I would expect the POST domain to reference a https:// domain

Actual result

Joomla switches the POST url from '/somerelativepath' when 'Encrypt Login Form' is set to 'No', to http:// fullyqualifieddomain.tld/somerelativepath' when 'Encrypt Login Form' is set to 'Yes'. Emphasis on HTTP instead of HTTPS post protocol. HTTPS would be the expected POST protocol. I'm assuming that with 'Force SSL' in at least the front end or site-wide in the global settings is causing the post to be refused by Joomla if the login form is being posted to a non-HTTPS page.

When a valid username and password is submitted, the page simply refreshes and does not 'register' a logged in user session.

System information (as much as possible)

Joomla 3.3.3

Additional comments

Votes

# of Users Experiencing Issue
1/1
Average Importance Score
5.00

avatar github-us3r github-us3r - open - 28 Aug 2014
avatar Strunk18
Strunk18 - comment - 1 Sep 2014

Hi.

I'll test this today afternoon and let you know.

-AJ

This comment was created with the J!Tracker Application at http://issues.joomla.org/.

avatar Strunk18
Strunk18 - comment - 1 Sep 2014

Hi,

I can confirm this issue in Joomla 3.3.3, but not in Joomla 3.2.3. The credentials of the logged in user can be seen in plain text when logging in.

Full steps to reproduce:

1) Force SSL (w/ cert properly installed) site-wide or frontend.
2) Set user login module 'Encrypt Login Form' to >> 'Yes'
3) Reload the frontend, and attempt to log into In a full SSL site, the site via the user login module.
4) Run a packet sniffer, filter HTTP requests only, and check that the POST request is sent over plain HTTP.

-AJ

This comment was created with the J!Tracker Application at http://issues.joomla.org/.

avatar Strunk18
Strunk18 - comment - 1 Sep 2014

In the file libraries/joomla/application/route.php:85, setting (int) $ssl === 1 instead of $ssl === 1 solves the issue.

This is because the parameter $ssl in the function JRouter::_() is passed as an string, and the comparison is performed type-safe against an integer.

I've diffed the route.php files between Joomla version 3.2.3 and version 3.3.3, and the difference is clear. Version 3.2.3 does it well.

(Joomla v3.2.3) libraries/joomla/application/route.php:88
$scheme = ((int) $ssl === 1) ? 'https' : 'http';
vs.
(Joomla v3.3.3) libraries/joomla/application/route.php:85
$uri->setScheme(($ssl === 1 || $uri->isSSL()) ? 'https' : 'http');

I see this issue has been solved in branch 3.4-dev, but users upgrading to 3.3.3 from the 3.2.3 backend (when clicking on the blue button over red rectangle) are still getting the bug (at least at Sep 01, 2014, 22:30 UTC+2). I haven't tested this issue in a fresh Joomla 3.3.3 install.

This comment was created with the J!Tracker Application at http://issues.joomla.org/.

avatar Bakual
Bakual - comment - 2 Sep 2014

Looks like it's fixed already in staging, so this will be included in the next release.
See 0b958aa

avatar Bakual Bakual - change - 2 Sep 2014
Status New Closed
Closed_Date 0000-00-00 00:00:00 2014-09-02 06:00:29
avatar Bakual Bakual - close - 2 Sep 2014
avatar zero-24 zero-24 - close - 2 Sep 2014
avatar zero-24 zero-24 - change - 7 Jul 2015
Labels Added: ?

Add a Comment

Login with GitHub to post a comment