Middleware added, cookie state added, and example psgi app
[catagits/Web-Session.git] / lib / Plack / Middleware / Session.pm
1 package Plack::Middleware::Session;
2 use strict;
3 use warnings;
4
5 use Plack::Session;
6 use Plack::Request;
7 use Plack::Response;
8
9 use parent 'Plack::Middleware';
10
11 use Plack::Util::Accessor qw( state store );
12
13 sub call {
14     my $self = shift;
15     my $env  = shift;
16
17     $env->{'psgix.session'} = Plack::Session->new(
18         state   => $self->state,
19         store   => $self->store,
20         request => Plack::Request->new( $env )
21     );
22
23     my $res = Plack::Response->new( @{ $self->app->( $env ) } );
24
25     $env->{'psgix.session'}->finalize( $res );
26
27     $res->finalize();
28 }
29
30 1;
31
32 __END__