[Catalyst] How to return a 401 from Catalyst

Jess Robinson castaway at desert-island.me.uk
Tue Jan 29 07:23:17 GMT 2008



On Sat, 26 Jan 2008, Ian Docherty wrote:

> Related to my earlier thread about basic authentication, what do I have to do 
> to return a 401 error from within Catalyst?
>
> I have tried to understand the documentation at 
> http://www.ietf.org/rfc/rfc2617.txt but it does not help me in a practical 
> manner.
>
> My understanding is that when the Catalyst app refuses the credentials given 
> it must return a 401 with a 'realm' that is
> just a string used to identify the service.
>
> For example, when I create a test script for my Controller using LWP as 
> follows
>
> my $ua = LWP::UserAgent->new;
> $ua->credentials('linux:8001','some_realm_or_other','sage_1001','sage');
>
> Then my script fails because I have not set a 'realm' correctly in my 
> Catalyst controller. All I have done so far is as follows.
>
>   if ($login_success) ) {
>      # do something
>   }
>   else {
>       $c->response->status(401);
>       return 0;
>   }
>
> Obviously I need to do more to return the realm, but what exactly?

Use the Authentication::Credential::HTTP module that does it for you?

> Regards
> Ian
>
> p.s. I note that there is nothing in Test::WWW (that I can find) that tests 
> return status's such as 200, 401 etc.
>

In general, $c->res->status(401); etc.

JEss



More information about the Catalyst mailing list