Apache-AppSamurai
view release on metacpan or search on metacpan
lib/Apache/AppSamurai/Session.pm view on Meta::CPAN
if (!exists $incl->{$ser}) {
eval "require $ser" || die $@;
eval '$incl->{$ser}->[0] = \&' . $ser . '::serialize' || die $@;
eval '$incl->{$ser}->[1] = \&' . $ser . '::unserialize' || die $@;
}
$self->{object_store} = new $store $self;
$self->{lock_manager} = new $lock $self;
$self->{generate} = $incl->{$gen}->[0];
$self->{validate} = $incl->{$gen}->[1];
$self->{serialize} = $incl->{$ser}->[0];
$self->{unserialize} = $incl->{$ser}->[1];
return $self;
}
1; # End of Apache::AppSamurai::Session
__END__
=head1 NAME
Apache::AppSamurai::Session - Apache::AppSamurai wrapper for Apache::Session
=head1 SYNOPSIS
use Apache::AppSamurai::Session;
# Equivalent to Apache::Session::Flex use:
tie %hash, 'Apache::AppSamurai::Session', $id, {
Store => 'DB_File',
Lock => 'Null',
Generate => 'MD5',
Serialize => 'Storable'
};
# Postgress backend with AppSamurai HMAC-SHA265 generator and
# AES (Rijndael) encrypting serializer.
tie %hash, 'Apache::AppSamurai::Session', $id, {
Store => 'Postgress',
Lock => 'Null',
Generate => 'AppSamurai/HMAC_SHA',
Serialize => 'AppSamurai/CryptBase64'
};
# Wacky setup with imaginary Thinger::Thing::File storage module
# and very real Apache::AppSamurai::Session::Serialize::CryptBase64
# serializer. (This shows the alternate module syntaxes.)
tie %hash 'Apache::AppSamurai::Session', $id, {
Store => 'Thinger::Thing::File',
Lock => 'Null',
Generate => 'Ranom::Garbage',
Serialize => 'AppSamurai/CryptBase64'
};
# you decide!
=head1 DESCRIPTION
This module is a overload of Apache::Session which allows you to specify the
backing store, locking scheme, ID generator, and data serializer at runtime.
You do this by passing arguments in the usual Apache::Session style (see
SYNOPSIS). You may use any of the modules included in this distribution, or
a module of your own making.
In addition to the standard Apache::Session setup, this module allows for
using modules from within of the Apache::AppSamurai::Session tree by
prefixing with I<AppSamurai/>, or using any visible Perl module by
supplying its full module name. (Whatever the module, it still must
meet standard Apache::Session interface functionality.)
=head1 USAGE
You pass the modules you want to use as arguments to the constructor.
There are three ways to point to a module:
=over 4
=item 1)
Specify the Apache::Session name. For instance, for
L<Apache::Session::Storage::File|Apache::Session::Storage::File>,
you would use:
Store => 'File'
=item 2)
Specify a name under the Apache::AppSamurai::Session tree. For instance,
for
L<Apache::AppSamurai::Session::Serialize::CryptBase64|Apache::AppSamurai::Session::Serialize::CryptBase64>,
you would use:
Serialize => 'AppSamurai/CryptBase64'
=item 3)
Specify the full Perl module name. For instance, for Junk::Thing::Monster
to be the session generator:
Generate => 'Junk::Thing::Monster'
=back
In addition to the arguments needed by this module, you must provide whatever
arguments are expected by the backing store and lock manager that you are
using. Please see the documentation for those modules, and
L<Apache::Session> for more general session storage information.
=head1 SEE ALSO
L<Apache::AppSamurai>, L<Apache::Session>
=head1 AUTHOR
Paul M. Hirsch, C<< <paul at voltagenoir.org> >>
( run in 1.865 second using v1.01-cache-2.11-cpan-39bf76dae61 )