chdemko / joomla-external-login

The External Login project allows Joomla! to manage external Authentication Servers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Joomla 3.8 - Unable to create Logger instance

PeterTHM opened this issue · comments

Hi! It seems that there is an issue with the logging since Joomla 3.8 moved the Logger to the libraries/src folder and added namespace usage for it.

image

We currently avoid this behaviour on Joomla 3.8 by deactivating the logging.

Regards
Peter

Bonjour,
j'ai le même problème avec joomla 3.8.1, une idée ?
merci pour le développement

Hi, does anyone know what files are affected so as to make the necessary changes? As noticed above, I assume that the problem stems from the change in Loggger and the use of namespaced class names by for library classes (https://developer.joomla.org/news/693-plan-for-the-joomla-3-8-release.html). In my case (Joomla 3.8.1) although I am successfully logged in the CAS, I receive the following error when I return to my site:

Unable to create a Logger instance: Joomla\CMS\Log\Logger\ExternalloginLogger
...\libraries\src\Log\Log.php:312

1 () JROOT\libraries\src\Log\Log.php:312
2 Joomla\CMS\Log\Log->addLogEntry() JROOT\libraries\src\Log\Log.php:166
3 Joomla\CMS\Log\Log::add() JROOT\plugins\system\caslogin\caslogin.php:507
4 PlgSystemCaslogin->onAfterInitialise() JROOT\libraries\joomla\event\event.php:70
5 JEvent->update() JROOT\libraries\joomla\event\dispatcher.php:160
6 JEventDispatcher->trigger() JROOT\libraries\src\Application\BaseApplication.php:108
7 Joomla\CMS\Application\BaseApplication->triggerEvent() JROOT\libraries\src\Application\CMSApplication.php:686
8 Joomla\CMS\Application\CMSApplication->initialiseApp() JROOT\libraries\src\Application\SiteApplication.php:688
9 Joomla\CMS\Application\SiteApplication->initialiseApp() JROOT\libraries\src\Application\SiteApplication.php:212
10 Joomla\CMS\Application\SiteApplication->doExecute() JROOT\libraries\src\Application\CMSApplication.php:267 11 Joomla\CMS\Application\CMSApplication->execute() JROOT\index.php:49

The above errors can be bypassed by setting all logging to "No". Currently, this can be achieved through database by changing the params column of Table __externallogin_server, e.g. "log_user_delete":"0","log_user_change_password":"0"

However, in my case at least, the above bypass does not ensure the successful login. After returning from CAS to my website I am not logged in and a ticket is appended to the URL like "?ticket=ST-876975-bV2QbNrafrdw0ZxeDhIp-sso.___.com" . Does anyone have any clue?

Thank you in advance for any help!

Finally, I managed to fix it.

  1. In order to keep the logs, you have to create the "libraries\joomla\log" and paste the content of "log" folder which can be taken from an older version than J 3.8. I do not know, at this point, if this change will cause any troubles, however I have not noticed any problem till now.

  2. In order to login successfully and get rid of the ticket that is appended to the URL like "?ticket=ST-876975-bV2QbNrafrdw0ZxeDhIp-sso.___.com", you have to disable the "System - Page Cache" plugin. If you still have some problems, play with the parameters of the params column of Table "__externallogin_server".

Currently, I have not the time to fix it. You can propose a pull request if you want.