1package Apache::Session::Generate::ModUniqueId;
2
3use strict;
4use vars qw($VERSION);
5$VERSION = '0.02';
6
7sub generate {
8    my $session = shift;
9    unless (exists $ENV{UNIQUE_ID}) {
10	require Carp;
11	Carp::croak('Can\'t get UNIQUE_ID env variable. Make sure mod_unique_id is enabled.');
12    }
13    $session->{data}->{_session_id} = $ENV{UNIQUE_ID};
14}
15
16sub validate {
17    my $session = shift;
18    $session->{data}->{_session_id} =~ /^[A-Za-z0-9@\-]+$/
19	or die "invalid session id: $session->{data}->{_session_id}.";
20}
21
221;
23__END__
24
25=head1 NAME
26
27Apache::Session::Generate::ModUniqueId - mod_unique_id for session ID generation
28
29=head1 SYNOPSIS
30
31  use Apache::Session::Flex;
32
33  tie %session, 'Apache::Session::Flex', $id, {
34       Store     => 'MySQL',
35       Lock      => 'Null',
36       Generate  => 'ModUniqueId',
37       Serialize => 'Storable',
38  };
39
40=head1 DESCRIPTION
41
42Apache::Session::Generate::ModUniqueId enables you to use unique id
43generated by mod_unique_id as session id for Apache::Session
44framework. Using mod_unique_id would ensure higher level uniquess of
45id.
46
47=head1 AUTHOR
48
49Tatsuhiko Miyagawa <miyagawa@bulknews.net>
50
51This library is free software; you can redistribute it and/or modify
52it under the same terms as Perl itself.
53
54=head1 SEE ALSO
55
56L<Apache::Session>, L<Apache::Session::Flex>, mod_unique_id
57
58=cut
59