[Catalyst] Catalyst with HTTP authentication
Lukas Thiemeier
spamcatcher at thiemeier.net
Mon Mar 11 22:36:51 GMT 2013
I realized that you don't even have to set password_field correctly.
Something was going terribly wrong in my head, sorry for that.
Only "password_type" has to be set to "self_check", but this is documented.
This means that there is no tricky part at all. Just configure both
modules as described in their documentation.
Lukas
On 03/11/2013 07:54 PM, Lukas Thiemeier wrote:
> Hi,
>
> I just had some time to try it: C::Authentication::Credential::HTTP and
> C::Authentication::Store::Htpasswd work together just fine. Here is my
> setup:
>
> in TestApp.pm:
>
> use Catalyst qw/
> ConfigLoader
> Authentication
> /;
>
> __PACKAGE__->config(
> "Plugin::Authentication" => {
> realms => {
> default => {
> credential => {
> class => 'HTTP',
> type => "basic",
> password_field => 'check_password',
> password_type => 'self_check',
> },
> store => {
> class => 'Htpasswd',
> file => "/tmp/htpasswd",
> },
> },
> },
> },
> );
>
>
> and in Controller/Root.pm (or wherever you need it):
>
> sub index :Path :Args(0) {
> my ( $self, $c ) = @_;
> $c->authenticate;
>
> if($c->user_exists){
> $c->res->body("logged in");
> }
> }
>
> The tricky part is that you have to set "password_field" and
> "password_type" correctly, which is not documented. (You have to know
> how Catalyst Authentication works and read the docs for Authen::Htpasswd
> to find out)
>
> I still recommend to use C::A::Credential::Remote. Let the server do the
> job, and keep your application small and simple.
>
> Plus: You can add digest authentication, certificate authentication,
> kerberos authentication and whatever your server supports without
> modifying your application.
>
> Lukas
>
>
>
> On 03/11/2013 03:10 PM, Robert Rothenberg wrote:
>> I have a project that requires using HTTP authentication.
>>
>> There is a Catalyst::Authentication::Credential::HTTP module, but from the
>> documentation, it does not seem to support using htpasswd files, which I
>> need, because a separate web site will be using that file.
>>
>> There is Catalyst::Authentication::Store::Htpasswd, but it does not work
>> with Catalyst::Authentication::Credential::HTTP.
>>
>> I'm not clear on how to do this, without having to write my own handlers for
>> HTTP authentication.
>>
>>
>> _______________________________________________
>> List: Catalyst at lists.scsys.co.uk
>> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
>> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
>> Dev site: http://dev.catalyst.perl.org/
>
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst
mailing list