[Catalyst] Catalyst with HTTP authentication

Robert Rothenberg robrwo at gmail.com
Fri Mar 22 13:34:45 GMT 2013


On 22/03/13 11:46 Robert Rothenberg wrote:

> I understand how to have an Apache reverse proxy send the REMOTE_USER as a
> header, with something like
> 
>   RequestHeader set X-Proxy-REMOTE-USER %{REMOTE_USER}
> 
> but how to I get Authentication::Credential::Remote to use the header
> instead of the environment variable?  Do I need an auto method in Root.pm
> that checks for the header and sets $c->req->remote_user()?

I have code such as

    if (my $user = $c->req->header('X-Proxy-REMOTE-USER')) {

	$c->engine->env({ REMOTE_USER => $user });

	$c->authenticate({});

    }

which works, but I get a warning "env as a writer is deprecated, you
probably need to upgrade Catalyst::Engine::PSGI".

I'm unsure what to do here. Should I write a Plack::Middleware plugin that
translates the X-Proxy-REMOTE_USER header to an env->{REMOTE_USER}?






More information about the Catalyst mailing list