Apache - mod_perl: Unknown Authz provedor 'acesso'

1

Estou tentando configurar e executar um aplicativo da Web antigo (escrito em 2010) em um novo ambiente Linux. O servidor Apache não está iniciando por causa do erro Unknown Authz provider access , causado pela configuração dada abaixo.

<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>

Não encontrei nenhuma documentação para isso, ou qualquer módulo do Apache que defina access , mas security::AuthCookieHandler tem

sub access
{
...
...
}

Entendo que isso é uma autenticação baseada em mod_perl , mas não trabalhei nisso antes. O Apache é iniciado se essa autenticação estiver desativada e o aplicativo for carregado no navegador.

Então as perguntas são

  1. O require access deve obter o valor de retorno de sub access ?
  2. Em caso afirmativo, por que sub access não está visível para a configuração?
  3. Se não, o que é access aqui?
por Diode 27.02.2017 / 05:32

1 resposta

1

Depois de pesquisar por algumas horas, descobri que isso se deve às alterações nas versões mais recentes do Apache e do mod_perl.

Nos seguintes documentos,

link link

Eu entendi que o Apache 2.4 precisa da versão mod_perl 2.0.9 ou superior.

O provedor de autenticação personalizado também deve ser adicionado usando PerlAddAuthzProvider

Então, consegui resolvê-lo escrevendo

PerlAddAuthzProvider access security::AuthCookieHandler->access
...
...
<Directory /srv/webapp>
    ...
    ...
    require access
</Directory>
    
por 27.02.2017 / 09:36