[horde] Random user not authorized messages from Registry.php

James MacLean macleajb at ednet.ns.ca
Thu Jul 11 10:48:08 UTC 2013


On 07/10/2013 08:15 PM, Luis Felipe Marzagao wrote:
> Em 10-07-2013 18:43, Andy Dorman escreveu:
>> On 07/10/2013 04:38 PM, l.kiraly at madalbal.hu wrote:
>>> Hi Luis,
>>>
>>>
>>> The user has to relog after this message?
>>>
>>>
>>> Idézet (Luis Felipe Marzagao <lfbm.andamentos at gmail.com>):
>>>
>>>> Hello:
>>>>
>>>> Horde 5.1.1.
>>>>
>>>> I´m getting random 'user not authorized' msgs in my logs, like these:
>>>>
>>>> Jul 10 14:34:16 mserver HORDE: User is not authorized for horde [pid
>>>> 1612 on line 267 of "/usr/share/php/Horde/Registry.php"]
>>>> Jul 10 14:34:18 mserver HORDE: User is not authorized for horde [pid
>>>> 1311 on line 267 of "/usr/share/php/Horde/Registry.php"]
>>>> Jul 10 15:42:01 mserver HORDE: User is not authorized for horde [pid
>>>> 2263 on line 270 of "/usr/share/php/Horde/Registry.php"]
>>>> Jul 10 16:42:04 mserver HORDE: User is not authorized for horde [pid
>>>> 2268 on line 270 of "/usr/share/php/Horde/Registry.php"]
>>>>
>>>> Apparently, they are harmless, since everybody is using horde and all
>>>> the modules just fine. But I´d like to further investigate this.
>>>>
>>>> I´ve inserted Horde::debug($GLOBALS['registry']->getAuth()); in
>>>> /usr/share/php/Horde/Registry.php to see what users were causing the
>>>> problem, but it returned a false boolean, like this:
>>>>
>>>> 2013-07-10T18:42:01+00:00 DEBUG: Variable information:
>>>> bool(false)
>>>>
>>>> Backtrace:
>>>> 1. Horde_Registry::appInit() /var/www/horde/rampage.php:54
>>>> 2. Horde::debug() /usr/share/php/Horde/Registry.php:268
>>>>
>>>>
>>>> How can I further debug this? Any directions?
>>>>
>>>> Thanks.
>>>> Luis Felipe
>>>> -- 
>>>> Horde mailing list
>>>> Frequently Asked Questions: http://horde.org/faq/
>>>> To unsubscribe, mail: horde-unsubscribe at lists.horde.org
>>
>> In our case the user does NOT have to relog after this message...in 
>> fact we have not yet seen any impact on the user.
>>
>
> Yes, for us to. Any user has to relog into horde. Things still works 
> after the error msg.
>
In our environment, this started when we were testing in the spring. 
When they happen we can not get back in to Horde. Refreshing the browser 
just repeats the error. We use the latest 5 release with IMP authentication.

We have so far found the following 2 situations:

In one instance, users get redirected around and around usually to an 
emtpy page or a browser recursive error. After this user could not log 
in until the remove their Horde specific cookie. Fix for this that 
appears to work for us is to remove the cookie at the point when these 
errors are thrown :

--- Registry.php        2013-07-08 17:54:00.089791302 -0300
+++ /usr/share/pear/Horde/Registry.php  2013-07-08 20:43:23.920790751 -0300
@@ -264,6 +264,8 @@

              switch ($e->getCode()) {
              case self::AUTH_FAILURE:
+               setcookie ($GLOBALS['conf']['session']['name'], 
"remove", time() - 3600, '/', '.<ourdomain>');
                  $failure = new 
Horde_Exception_AuthenticationFailure($e->getMessage());
                  $failure->application = $app;
                  throw $failure;
@@ -280,6 +282,8 @@
                  // Fall-through

              case self::PERMISSION_DENIED:
+               setcookie ($GLOBALS['conf']['session']['name'], 
"remove", time() - 3600, '/', '.<ourdomain>');
                  $failure = new 
Horde_Exception_AuthenticationFailure($e->getMessage(), 
Horde_Auth::REASON_MESSAGE);
                  $failure->application = $app;
                  throw $failure;

No, not the best fix, but seems to be working when tested at the point 
the error occurs.

The second gives the user a JSON response in their browser and again, no 
way to get back in easily. For that we changed one of the ajax returns:

--- ajax.php    2013-07-09 12:29:48.336546450 -0300
+++ /var/www/horde/services/ajax.php    2013-07-09 12:29:21.423811212 -0300
@@ -72,7 +72,9 @@
      $response = new Horde_Core_Ajax_Response_HordeCore_NoAuth($app, 
$e->getCode());
      $response->sendAndExit();
  } catch (Exception $e) {
-    $notification->push($e->getMessage(), 'horde.error');
-    $response = new Horde_Core_Ajax_Response_HordeCore();
+//    $notification->push($e->getMessage(), 'horde.error');
+//    $response = new Horde_Core_Ajax_Response_HordeCore();
+    $response = new Horde_Core_Ajax_Response_HordeCore_NoAuth($app, 
$e->getCode());
      $response->sendAndExit();
  }

Again, these would not be the right fix, but have been proven to allow 
us to continue on once the errors are found. We have just started 
digging in to these over the last 2 days so this is just a work around 
at this point ;).

JES


More information about the horde mailing list