#!/usr/bin/perl -- use Mojolicious::Lite; app->routes->under(sub{ my( $c ) = @_; return defined($c->session('userid')) })->get ( '/breaky' => 'index' ); app->routes->under(sub{ my( $c ) = @_; return defined($c->session('userid')) })->name('achey')->get ( '/breakyname' => 'index' ); # Authenticate based on name parameter under sub { my $c = shift; # Authenticated my $name = $c->param('name') || ''; return 1 if $name eq 'Bender'; # Not authenticated $c->render(template => 'denied'); return undef; }; # Only reached when authenticated get '/' => 'index'; app->start; __DATA__ @@ denied.html.ep You are not Bender, permission denied. @@ index.html.ep Hi Bender.