diff options
Diffstat (limited to 'lib/Data/Session/ID/SHA1.pm')
-rw-r--r-- | lib/Data/Session/ID/SHA1.pm | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/lib/Data/Session/ID/SHA1.pm b/lib/Data/Session/ID/SHA1.pm new file mode 100644 index 0000000..7a40c38 --- /dev/null +++ b/lib/Data/Session/ID/SHA1.pm @@ -0,0 +1,130 @@ +package Data::Session::ID::SHA1; + +use parent 'Data::Session::SHA'; +no autovivification; +use strict; +use warnings; + +use Hash::FieldHash ':all'; + +our $VERSION = '1.18'; + +# ----------------------------------------------- + +sub generate +{ + my($self) = @_; + + return $self -> SUPER::generate(1); + +} # End of generate. + +# ----------------------------------------------- + +sub id_length +{ + my($self) = @_; + + return 40; + +} # End of id_length. + +# ----------------------------------------------- + +sub new +{ + my($class, %arg) = @_; + $arg{verbose} ||= 0; + + return from_hash(bless({}, $class), \%arg); + +} # End of new. + +# ----------------------------------------------- + +1; + +=pod + +=head1 NAME + +L<Data::Session::ID::SHA1> - A persistent session manager + +=head1 Synopsis + +See L<Data::Session> for details. + +=head1 Description + +L<Data::Session::ID::SHA1> allows L<Data::Session> to generate session ids using L<Digest::SHA>. + +To use this module do this: + +=over 4 + +=item o Specify an id generator of type SHA1, as Data::Session -> new(type => '... id:SHA1 ...') + +=back + +=head1 Case-sensitive Options + +See L<Data::Session/Case-sensitive Options> for important information. + +=head1 Method: new() + +Creates a new object of type L<Data::Session::ID::SHA1>. + +C<new()> takes a hash of key/value pairs, some of which might mandatory. Further, some combinations +might be mandatory. + +The keys are listed here in alphabetical order. + +They are lower-case because they are (also) method names, meaning they can be called to set or get +the value at any time. + +=over 4 + +=item o verbose => $integer + +Print to STDERR more or less information. + +Typical values are 0, 1 and 2. + +This key is normally passed in as Data::Session -> new(verbose => $integer). + +This key is optional. + +=back + +=head1 Method: generate() + +Generates the next session id, or dies if it can't. + +The algorithm is Digest::SHA -> new(1) -> add($$, time, rand(time) ) -> hexdigest. + +Returns the new id. + +=head1 Method: id_length() + +Returns 40 because that's the number of hex digits in an SHA1 digest. + +=head1 Support + +Log a bug on RT: L<https://rt.cpan.org/Public/Dist/Display.html?Name=Data-Session>. + +=head1 Author + +L<Data::Session> was written by Ron Savage I<E<lt>ron@savage.net.auE<gt>> in 2010. + +Home page: L<http://savage.net.au/index.html>. + +=head1 Copyright + +Australian copyright (c) 2010, Ron Savage. + + All Programs of mine are 'OSI Certified Open Source Software'; + you can redistribute them and/or modify them under the terms of + The Artistic License, a copy of which is available at: + http://www.opensource.org/licenses/index.html + +=cut |