Fri, Feb 16, 2018 at 01:46:26PM -0800, Luc Larochelle wrote:
> but still, why would the basic_auth always return a true value ? I thought
> about this and used private browser session to make sure it would not happen.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Mojolicious" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/mojolicious.
> For more options, visit https://groups.google.com/d/optout.
I've just started to look at this, and I don't believe basic_auth always
returns a true value. Of course, I could be wrong about that.
I'm not sure the following route will ever allow the 'under' to be
evaluated:
get '/' {
plugin ('Directory', root=>"/my/path")->start;
}
If this route matches, the 'Directory' plugin is going to be loaded (or
reloaded?), and it sets up a 'before_dispatch' hook which, if I am
reading correctly, will proceed to render a page before your 'under'
ever gets a chance to do this:
$self->render(text => 'denied');
I'm no expert at understanding hooks, so I am not sure this is correct.
In any case, I've been tinkering with calling the 'Directory' plugin
with a handler, per the documentation:
use Text::Markdown qw{ markdown };
use Path::Class;
use Encode qw{ decode_utf8 };
plugin('Directory', root => "/path/to/htdocs", handler => sub {
my ($c, $path) = @_;
if ( -f $path && $path =~ /\.(md|mkdn)$/ ) {
my $text = file($path)->slurp;
my $html = markdown( decode_utf8($text) );
$c->render( inline => $html );
}
})->start;
I tried moving the call to basic_auth() inside this handler, but it
doesn't work, and this is probably because, once again, registering the
'Directory' plugin with the "plugin('Directory', root ..." statement
sets up that 'before_dispatch' hook, which renders a page before the
code evaluating the result of basic_auth() is exercised.
So maybe the answer is to fiddle with some hooks so that the code using
basic_auth() doesn't get preempted. Either that, or I am completely off
base, and I'll freely admit it. It's been a while since I looked at any
of this stuff.
--
Brad Robertson
<[email protected]>
--
You received this message because you are subscribed to the Google Groups
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.