Status update:
Cliff has committed the fix,
I've have committed the new test.
So I guess this issue is closed now.
On Tue, 5 Feb 2002, Stas Bekman wrote:
> William A. Rowe, Jr. wrote:
>
> > From: "Stas Bekman" <[EMAIL PROTECTED]>
> > Sent: Monday, February 04, 2002 11:18 PM
> >
> >
> >
> >>>>I think it's a bug. The sub-directory can be password-protected. Does it
> >>>>mean that mod_autoindex won't display it, since it'll fail to run the
> >>>>sub-request?
> >>>>
> >>>>
> >>>By design, for better or worse [feel free to debate here.]
> >>>
> >>>The new logic [perhaps 1.3 as well, you would have to look] does a subrequest
> >>>on the /~stas/ url ... and decides it's broken [or inaccessable, or whatever]
> >>>and autoindex won't display it. What's broken about not displaying things that
> >>>the user cannot access?
> >>>
> >>I gave an example of a password protected sub-directory. You say that
> >>it's correct not to display it then? How do you know whether the user
> >>cannot access this directory? May be he does have the needed access
> >>credentials.
> >>
> >
> > Fair enough - we can rescope the rules. Right now 200s and 300s pass. The test
> > is right there in autoindex if you would like to change it.
> >
> > Personally, I never want to see 500'ed resources return OK ;-/
>
>
> agreed, but auth required is not 500 ;)
>
> Here is the new test, I figured trying to add this to the existing
> autoindex would be a hard thing to do, since so I simply wrote a new
> test and called it autoindex2.t.
>
> Currently 2 sub-tests pass
>
> - normal dir is listed
> - broken is not
>
> And 1 sub-test that doesn't pass:
>
> - passwd protected dir should be listed!
>
> I'm also not sure about the following: error_log says:
>
> [Tue Feb 05 16:09:57 2002] [alert] [client 127.0.0.1]
>
>/home/stas/apache.org/httpd-test/perl-framework/t/htdocs/modules/autoindex2/dir_broken/.htaccess:
>
> Invalid command 'This_is_a_broken_on_purpose_.htaccess_file', perhaps
> mis-spelled or defined by a module not included in the server configuration
>
> but there is no parallel log in access_log to dir_broken. So it may
> puzzle those who will try to figure out when the error was triggerred.
> But may be it's OK. I don't know.
>
>
> Index: t/conf/extra.conf.in
> ===================================================================
> RCS file: /home/cvs/httpd-test/perl-framework/t/conf/extra.conf.in,v
> retrieving revision 1.33
> diff -u -r1.33 extra.conf.in
> --- t/conf/extra.conf.in 5 Jan 2002 17:20:33 -0000 1.33
> +++ t/conf/extra.conf.in 5 Feb 2002 08:11:36 -0000
> @@ -310,6 +310,10 @@
> Options +Indexes
> AllowOverride Indexes
> </Directory>
> + <Directory @SERVERROOT@/htdocs/modules/autoindex2>
> + Options +Indexes
> + AllowOverride All
> + </Directory>
> </IfModule>
>
> ##
>
> --- /dev/null Thu Jan 1 07:30:00 1970
> +++ t/modules/autoindex2.t Tue Feb 5 16:10:20 2002
> @@ -0,0 +1,69 @@
> +use strict;
> +use warnings FATAL => 'all';
> +
> +use File::Spec::Functions qw(catfile catdir);
> +
> +use Apache::Test;
> +use Apache::TestUtil;
> +use Apache::TestRequest;
> +
> +##
> +## mod_autoindex test part II
> +##
> +## this tests how mod_autoindex handles sub-dirs:
> +## normal, with protected access, with broken .htaccess, etc...
> +
> +#my $cfg = Apache::Test::config();
> +my $vars = Apache::Test::config()->{vars};
> +my $documentroot = $vars->{documentroot};
> +my $base_dir = catdir $documentroot, "modules", "autoindex2";
> +my $base_uri = "/modules/autoindex2";
> +
> +# which sub-dir listings should be seen in mod_autoindex's output
> +# 1 == should appear
> +# 0 == should not appear
> +my %dirs = (
> + dir_normal => 1, # obvious
> + dir_protected => 1, #
> + dir_broken => 0, #
> +);
> +
> +plan tests => 3;
> +
> +setup();
> +
> +my $res = GET_BODY "$base_uri/";
> +
> +# simply test whether we get the sub-dir listed or not
> +for my $dir (sort keys %dirs) {
> + my $found = $res =~ /$dir/ ? 1 : 0;
> + ok t_cmp($dirs{$dir},
> + $found,
> + "$dir should @{[$dirs{$dir}?'':'not ']}be listed");
> +}
> +
> +sub setup {
> + t_mkdir $base_dir;
> +
> + ### normal dir
> + t_mkdir catdir $base_dir, "dir_normal";
> +
> + ### passwd protected dir
> + my $prot_dir = catdir $base_dir, "dir_protected";
> + # htpasswd file
> + t_write_file catfile($prot_dir, "htpasswd"), "nobody:HIoD8SxAgkCdQ";
> + # .htaccess file
> + my $content = <<CONTENT;
> +AuthType Basic
> +AuthName "Restricted Directory"
> +AuthUserFile $prot_dir/htpasswd
> +Require valid user
> +CONTENT
> + t_write_file catfile($prot_dir, ".htaccess"), $content;
> +
> + ### dir with a broken .htaccess
> + my $broken_dir = catdir $base_dir, "dir_broken";
> + t_write_file catfile($broken_dir, ".htaccess"),
> + "This_is_a_broken_on_purpose_.htaccess_file";
> +
> +}
>
>
> _____________________________________________________________________
> Stas Bekman JAm_pH -- Just Another mod_perl Hacker
> http://stason.org/ mod_perl Guide http://perl.apache.org/guide
> mailto:[EMAIL PROTECTED] http://ticketmaster.com http://apacheweek.com
> http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
>
_____________________________________________________________________
Stas Bekman JAm_pH -- Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide http://perl.apache.org/guide
mailto:[EMAIL PROTECTED] http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/