The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Apache::AxKit::Plugin::BasicSession - AxKit plugin that handles setting / loading of Sessions

SYNOPSIS

    AxAddPlugin Apache::AxKit::Plugin::BasicSession
    AxAddPlugin Apache::AxKit::Plugin::AddXSLParams::BasicSession
    PerlSetVar BasicSessionDataStore "File"
    PerlSetVar BasicSessionArgs "Directory => /tmp/session"

DESCRIPTION

BasicSession is an AxKit plugin which automatically creates and manages server-side user sessions. Based on Apache::Session::Flex, this allows you to specify all the parameters normally configurable through A:S::Flex.

NOTE: If used in conjunction with the provided AxKit::XSP::BasicAuth module, the following parameter's names should be changed to reflect your local realm name. For instance, "BasicSessionDataStore" should be changed to say "RealmNameDataStore". This allows for different configuration parameters to be given to each realm in your site.

Parameter Reference

BasicSessionDataStore

Sets the backend datastore module. Default: DB_File

BasicSessionLock

Sets the record locking module. Default: Null

BasicSessionGenerate

Sets the session id generation module. Default: MD5

BasicSessionSerialize

Sets the hash serializer module. Default: Storable

BasicSessionArgs

Comma-separated list of name/value pairs. This is used to pass additional parameters to Apache::Session::Flex for the particular modules you select. For instance: if you use MySQL for your DataStore, you need to pass the database connection information. You could pass this by calling:

    PerlSetVar BasicSessionArgs "DataSource => dbi:mysql:sessions, \
                                 UserName   => session_user, \
                                 Password   => session_password"

BasicSessionURIToken

While BasicSession defaults to using a cookie for sessions, there are times (e.g. when performing document() lookups within XSLT stylesheets) when it is not possible to supply the proper cookie information with an HTTP request.

Therefore, you can use this configuration variable to set the name of a query parameter where the session ID can be found. This is not required, but will be used in preference to a cookie if this query parameter is supplied.

Note, however, that the W3C recommends against using this for external requests.

BasicSessionCookie*

These arguments set the parameters your session cookie will be created with. These are named similarly to the above parameters, namely the prefix should reflect your local realm name (or "BasicSession" if you aren't doing authentication). A common thing one might want to set is the expirytime of the session cookie. This can be set using the formats described in CGI::Cookie, e.g.:

  PerlSetVar BasicSessionCookieExpires +2d

will make the cookie expire two days from now.

For more information, please see Apache::AuthCookie.

AxKit::XSP::BasicSession Support

This plugin was created to complement AxKit::XSP::BasicSession, but can be used without the taglib.

Every session access, the session key "_last_accessed_time" is set to the current date-timestamp. When a new session is created, the session key "_creation_time" is set to the current date-timestamp.

ERRORS

To tell you the truth, I haven't tested this enough to know what happens when it fails. I'll update this if any glaring problems are found.

AUTHOR

Michael A Nachbaur, mike@nachbaur.com Kjetil Kjernsmo, kjetilk@cpan.org

COPYRIGHT

Copyright (c) 2001-2004 Michael A Nachbaur, 2004 Kjetil Kjernsmo. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

AxKit, AxKit::XSP::BasicSession, Apache::Session, Apache::Session::Flex