Apache - mod_perl: Неизвестный поставщик Authz «доступ»

Я пытаюсь настроить и запустить старое веб-приложение (написанное в 2010 году) в новой среде Linux. Сервер Apache не запускается из-за ошибки Неизвестный доступ поставщика Authz , вызванной конфигурацией, приведенной ниже.

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

Мне не удалось найти никакой документации для этого или какого-либо модуля apache, который определяет доступ , но security :: AuthCookieHandler имеет

sub access
{
...
...
}

Я понимаю, что это аутентификация на основе mod_perl , но раньше не работал с этим. Apache запускается, если эта аутентификация отключена, и приложение загружается в браузере.

Итак, вопросы:

  1. Требуется ли доступ , чтобы получить возвращаемое значение от дополнительного доступа ?
  2. Если да, то почему дополнительный доступ не отображается в конфигурации?
  3. Если нет, то что здесь доступ ?
1
задан 27 February 2017 в 07:47
1 ответ

После нескольких часов исследования я обнаружил, что это из-за изменений в последних версиях Apache и mod_perl.

Из следующих документов:

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

Я понял, что Apache 2.4 требует mod_perl версии 2.0.9 или выше.

Также необходимо добавить собственный поставщик Authz с использованием PerlAddAuthzProvider

, поэтому я смог решить эту проблему, написав

PerlAddAuthzProvider access security::AuthCookieHandler->access
...
...
<Directory /srv/webapp>
    ...
    ...
    require access
</Directory>
1
ответ дан 3 December 2019 в 23:33

Теги

Похожие вопросы