I use this subroutine:
sub let_through { my ($self, $r, $p) = @_; $r->set_handlers( PerlAuthzHandler => [\&OK] ); $r->set_handlers( PerlAuthenHandler => [\&OK] ); $p && $r->internal_redirect( $p ); return OK; }
And under some circumstances might call: return $self->let_through( $r, $login_page ); for instance.
When this happen I find that the page shows ( $login_page ), but the browser continues to show loading. I check the error log and find: message type 0x50 arrived from server while idle
IIRC, you can only call internal_redirect from a content handler. from your code I suspect that you're not doing that, since it would be too late to unset the auth phases.
HTH
--Geoff