CentOS7: no matter what I get Access denied. Please send authorisation information

  • Hi.
    I’ve made a new installation of Z-Push 2.4.4+0 with packages on CentOS 7 with Zimbra backend.

    Sadly whatever I try I just get the error above about missing authentication. I tried enabling failed auth, if I try logging in from the browser I get:

    02/08/2018 17:42:59 [20108] [WARN] [#unknown] IP: 79.x.y.z failed to authenticate user 'unknown'

    but I did enter username and password in the browser auth dialog! I really don’t know what’s wrong, apparently zpush is not receiving the auth passed by the client.

    For another existing user (this is a new install for an existing domain) I get:

    02/08/2018 17:39:22 [32629] [ INFO] [#email@domain.com] AuthenticationRequiredException: Access denied. Please send authorisation information - code: 0 -
    file: /usr/share/z-push/index.php:56

    from what I see in the source file it’s missing the auth info. How can this be? There’s no php or apache setting which can prevent such data to pass to the server… Any help?

  • Have you whitelisted the z-push server IP address on all the zimbra servers?

    Did you try setting up WBXML level debugging, and also ZIMBRA_DEBUG in order to look for any unexpected error messages returned from zimbra to the z-push server?

  • Yes, I enabled all the possible debug but no message explains why the apache implementation doesn’t work! I say apache implementation because, when run out of hair to pull, I tried serving zpush directly from zimbra’s nginx (using this solution) and it works!

    So now I’m totally puzzled: the same sources, the same php-fpm, works perfectly when run from nginx and not when run from apache? there’s a bit I’m missing

  • This snippet of an apache configuration works for me using rh-php71-php-fpm

    # Z-Push - ActiveSync over-the-air - default Apache configuration
    <IfModule mod_alias.c>
        Alias /Microsoft-Server-ActiveSync /usr/share/z-push/index.php
    DirectoryIndex /index.php index.php
    <Directory /usr/share/z-push>
        # Don't list a directory index, follow symlinks (maybe state dir is somewhere linked)
        # DirectoryIndex index.php
        Options -Indexes +FollowSymLinks
        <FilesMatch \.php$>
            SetHandler "proxy:fcgi://"
        SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

    Did the trick for me, hope it helps.

  • @markvnl thanks for your report. I tried adding that line and it seems to do something. Sadly after I enter authentication information I just get a blank page.
    But this could be related to some other problem, at least I’m not asked again for u/p, which probably means they’ve been received.

Log in to reply