#!/usr/bin/perl
use FCGI;
while (FCGI::accept >= 0) {
if( $ENV{'HTTP_AUTHORIZATION'} ) {
# This value can be further decoded to get the actual username and password and then
# perform some kind of user validation. This program only checks for the presence of
# of this environment param and is not really bothered about its value
print( "Status: 200\r\n" );
print( "\r\n" );
} else {
print( "Status: 401\r\n" );
print( "WWW-Authenticate: basic realm=\"foo\"\r\n" );
print( "\r\n" );
}
}
Example obj.conf settings for the above example:
上述範例的 obj.conf 程式碼片段:
<Object name="responder.fcgi"> AuthTrans fn="auth-fastcgi" app-path="/fastcgi/apps/auth/SimpleAuth.pl" bind-path="localhost:3432" Service fn="responder-fastcgi" app-path="/foo/fastcgi-enabled-php-installation/bin/php" bind-path="localhost:3433" app-env="PHP_FCGI_CHILDREN=8" min-procs=1 </Object>
第一次向 http://localhost/fcgi/php/ListDir.php 提出請求時,瀏覽器會顯示認證對話方塊。在使用者輸入使用者名稱和密碼後,即會列出「/tmp」目錄內容。