our $VERSION = "0.01";
sub setup_session {
- my $c = shift;
+ my $c = shift;
- $c->NEXT::setup_session(@_);
+ $c->NEXT::setup_session(@_);
- $c->config->{session}{cookie_name} ||= "session";
+ $c->config->{session}{cookie_name} ||= "session";
}
sub finalize {
my $c = shift;
- my $cookie_name = $c->config->{session}{cookie_name};
+ my $cookie_name = $c->config->{session}{cookie_name};
if ( my $sid = $c->sessionid ) {
my $cookie = $c->request->cookies->{$cookie_name};
if ( !$cookie or $cookie->value ne $sid ) {
- $c->response->cookies->{$cookie_name} = { value => $sid };
+ $c->response->cookies->{$cookie_name} = {
+ value => $sid,
+ expires => $c->session->{__expires}
+ };
$c->log->debug(qq/A cookie with the session id "$sid" was saved/)
if $c->debug;
}
sub prepare_cookies {
my $c = shift;
- my $cookie_name = $c->config->{session}{cookie_name};
+ my $ret = $c->NEXT::prepare_cookies(@_);
+
+ my $cookie_name = $c->config->{session}{cookie_name};
if ( my $cookie = $c->request->cookies->{$cookie_name} ) {
my $sid = $cookie->value;
$c->log->debug(qq/Found sessionid "$sid" in cookie/) if $c->debug;
}
- $c->NEXT::prepare_cookies(@_);
+ return $ret;
}
__PACKAGE__
=head1 SYNOPSIS
- use Catalyst qw/Session Session::State::Cookie Session::Store::Foo/;
+ use Catalyst qw/Session Session::State::Cookie Session::Store::Foo/;
=head1 DESCRIPTION
=item finalize
-Will set a cookie called C<session> if it doesn't exist or if it's value is not the current session id.
+Will set a cookie called C<session> if it doesn't exist or if it's value is not
+the current session id.
+
+=item setup_session
+
+Will set the C<cookie_name> parameter to it's default value if it isn't set.
=back