2017-02-27 5 views
2

新しいLinux環境で古いWebアプリケーション(2010年に書かれた)をセットアップして実行しようとしています。 Apacheサーバーは、エラーUnknown Authz provider accessのために開始されていません。これは、以下の構成に起因します。Apache - Mod Perl - 不明な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> 

私は、このための任意のドキュメント、またはaccessを定義する任意のApacheモジュールを見つけることが、私は、これはmod_perlベースの認証であることを理解しますが、上の働いていない

sub access 
{ 
... 
... 
} 

security::AuthCookieHandlerていませんでしたこの前に。この認証が無効で、アプリケーションがブラウザに読み込まれると、Apacheが起動します。

だから、質問は

  1. ですがsub accessからの戻り値を取得するためにrequire accessなっていますか?
  2. その場合、なぜsub accessが設定から見えないのですか?
  3. そうでない場合、accessはここにありますか?

答えて

1

これは、Apacheとmod_perlの最新バージョンの変更が原因であることがわかりました。

Apache-AuthCookie documentationApache 2.4 porting notesから、Apache 2.4にはmod_perlバージョン2.0.9以上が必要であることがわかりました。

また、カスタムAuthzプロバイダは、PerlAddAuthzProviderを使用して追加する必要があります。私は自分の問題を解決することができました

PerlAddAuthzProvider access security::AuthCookieHandler->access 
... 
... 
<Directory /srv/webapp> 
    ... 
    ... 
    require access 
</Directory> 
関連する問題