[Catalyst] Setting cookie_domain

Bernhard Graf catalyst2 at augensalat.de
Sun Apr 15 20:13:17 GMT 2007


On Sunday 15 April 2007 19:32, Fernan Aguero wrote:
> +----[ Bernhard Graf <catalyst2 at augensalat.de> (15.Apr.2007 08:23):
> | Hi,
> |
> | I'm wondering how to set the cookie_domain of
> | Catalyst::Plugin::Session::State::Cookie when you run a site under
> | different domains.
> |
> | The manual only gives advice how to do this in the (static)
> | configuration - and from looking at the source I get the impression
> | that I either had to sub class and override more or less
> | undocumented methods or otherwise had to patch.
> |
> | Or is there a (better) third way?
>
> +----]
>
> config your app using YAML. In your lib/app.pm file add
> 'ConfigLoader' to the list of plugins.
>
> The good thing about this setup is tat you can have a main
> config file and _local overrides for similar but not
> identical installations.

Thank you, but this doesn't help. Because I have only one application 
that can be accessed under different domains (same 2nd-level domain 
with TLDs .de, .at and .ch im my case).

The documentation for Catalyst::Plugin::Session::State::Cookie claims 
that the default value for cookie_domain is the current host, which is 
not true and probably would be counterproductive.

A sane default for cookie_domain would be something as
$cd = (/(\.[^\.]+\.[^\.]+)$/)[0] || $_ for $c->req->uri->host
giving you
".example.com" for "www.example.com" and "www.sub.example.com",
"example.com" for "example.com" and of course
"mylocaltestdomain" for "mylocaltestdomain".

But this is untested yet.
-- 
Bernhard Graf



More information about the Catalyst mailing list