The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

AxKit::XSP::BasicAuth - Tag library for basic cookie-based authentication.

SYNOPSIS

Add the session: namespace to your XSP <xsp:page> tag:

<xsp:page
     language="Perl"
     xmlns:xsp="http://apache.org/xsp/core/v1"
     xmlns:auth="http://www.nichework.com/2003/XSP/BasicAuth"
     xmlns:session="http://www.axkit.org/2002/XSP/BasicSession">

And add this taglib to AxKit (via httpd.conf or .htaccess):

SetHandler AxKit
PerlModule Apache::AxKit::Plugin::BasicAuth

<Location />
  AuthType Apache::AxKit::Plugin::BasicAuth
  AuthName BasicSession
</Location>
<Location /style>
  require valid-user
</Location>

# Session Management
AxAddPlugin Apache::AxKit::Plugin::BasicSession
PerlSetVar BasicSessionDataStore DB_File
PerlSetVar BasicSessionArgs      "FileName => /tmp/session"

AxAddPlugin Apache::AxKit::Plugin::BasicSession
AxAddPlugin Apache::AxKit::Plugin::AddXSLParams::BasicSession

# Authentication
PerlSetVar BasicSessionLoginScript /login

DESCRIPTION

This taglib provides simple form-and-cookie based authentication using Apache::Session and Apache::AuthCookie.

In the tag reference below, AuthNameToken designates the name given for AuthName.

Tag Reference

<auth:login>

Attempt to log the user in.

Typically, the page you set in AuthNameTokenLoginScript is an XSP page that uses a form built with PerForm to check the user. After verifying the identity of the user (e.g. in start_submit), you will have use this tag tell BasicAuth that the user is authenticated and that the username/password information should be stored in the session.

In constructing your form, it is important to understand that BasicAuth is expecting your username to be in a form field called credential_0. That is the only required form field name, but if other fields are named in the credential_? format, the will be stored in the session information as well. This allows you to store the plaintext user password in credential_1 if you need access to it (among other things).

<auth:logout>

Log the user out. This is done by removing any keys that match the credential_\d+ regular expression from the session information.

<auth:get-username>

Returns the username that was used to log in.

<auth:is-logged-in>

Returns true if the page if the session contains a logged in user.

AUTHOR

Mark A. Hershberger, mah@everybody.org

COPYRIGHT

Copyright (c) 2003 Mark A. Hershberger. 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, Apache::Session, AxKit::XSP::Session, AxKit::XSP::BasicSession

Cocoon2 Session Taglib (http://xml.apache.org/cocoon2/userdocs/xsp/session.html)