There's a little bug in the way URLs are created.

Basically, the code does not account for clean urls and in two locations and URLs are formed as if clean URLs are not used, ever - on lines 83 and 152, "'&slave_session=' . session_id()" is appended to the $uri variable but if clean URLs are used, the variable prefix should not be '&' but '?', because it's like if no variable has been set yet.

In order to get away with my sloppy explanation, I'll give an example:

When clean URLs are not active, the generated URL is valid: http://domain.com/?q=singlesigon/initial_check&slave_session=...

But when clean URLs are active, the generated URL is not valid anymore: http://domain.com/singlesigon/initial_check&slave_session=...
A valid URL for using with clean URLs would be: http://domain.com/singlesigon/initial_check?slave_session=...
(notice the difference: '?' and not '&' before slave_session).

So the fix is quite simple: we just check if clean URLs are enabled and if so, instead of '&' we use '?' to prefix the first URL variable.

Hope this helps.

CommentFileSizeAuthor
singlesignon_clean_urls_fixed.patch.txt381 bytesborfast

Comments

danielc’s picture

Assigned: Unassigned » danielc
Status: Needs review » Closed (fixed)

I committed a fix to CVS a moment ago. Please grab it and let me know if it works. Thanks for the report.

Tobias Maier’s picture

Status: Closed (fixed) » Fixed
Anonymous’s picture

Status: Fixed » Closed (fixed)