1

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
  • 121
  • 5

1 Answers1

1

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

From the following docs,

https://metacpan.org/release/Apache-AuthCookie https://metacpan.org/pod/distribution/Apache-AuthCookie/README.apache-2.4.pod

I understood that Apache 2.4 needs mod_perl version 2.0.9 or higher.

Also custom Authz Provider has to be added using PerlAddAuthzProvider

So I was able to solve it by writing

PerlAddAuthzProvider access security::AuthCookieHandler->access
...
...
<Directory /srv/webapp>
    ...
    ...
    require access
</Directory>
Diode
  • 121
  • 5