Catalyst, Catalyst::Authentication::Credential::Remote and mod_perl
Mod_perl does not pass REMOTE_USER as an environment variable to Catalyst, so the Catalyst::Authentication::Credential::Remote plugin which allows convenient offloading of authentication to apache will not work.
This is easily solved by adding this code to the root auto function:
$c->req->remote_user($c->apache->user) if $c->can('apache');
Now I can offload authentication to apache’s mod_kerb whilst using catalyst for authorisation.