2

I am trying to set up and run an old Web application(written in 2010) in a new Linux environment. The Apache server is not starting because of the error Unknown Authz provider access, caused by the configuration given below.

<Directory /srv/webapp>
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    SetOutputFilter DEFLATE
    ExpiresActive On
    ExpiresDefault "3 Months"
    AuthType security::AuthCookieHandler
    AuthName Maxio
    PerlAuthenHandler security::AuthCookieHandler->authenticate
    PerlAuthzHandler security::AuthCookieHandler->authorize
    require access
</Directory>

I couldn't find any documentation for this, or any apache module that defines access , but security::AuthCookieHandler has

sub access
{
...
...
}

I understand that this is mod_perl based authentication, but haven't worked on this before. Apache starts if this authentication is disabled, and the application loads in the browser.

So the questions are

  1. Is require access supposed to get the return value from sub access ?
  2. If so, why sub access is not visible to the configuration ?
  3. If not so, what is access here ?
Diode
  • 24,570
  • 8
  • 40
  • 51

1 Answers1

2

After researching for a few hours I found out that this is because of changes in the latest versions of Apache and mod_perl.

From the Apache-AuthCookie documentation and Apache 2.4 porting notes, I learned that Apache 2.4 needs mod_perl version 2.0.9 or higher.

Also, a custom Authz Provider has to be added using PerlAddAuthzProvider. I was able to solve my issue by doing

PerlAddAuthzProvider access security::AuthCookieHandler->access
...
...
<Directory /srv/webapp>
    ...
    ...
    require access
</Directory>
ThisSuitIsBlackNot
  • 23,492
  • 9
  • 63
  • 110
Diode
  • 24,570
  • 8
  • 40
  • 51