# Auth-basic authentication with Lemonldap::NG rights management # This specific handler is intended to be called directly by Apache package Lemonldap::NG::Handler::AuthBasic; use strict; use Lemonldap::NG::Handler::ApacheMP2; use Lemonldap::NG::Handler::Lib::AuthBasic; BEGIN { our @ISA = ('Lemonldap::NG::Handler::Main'); } our $VERSION = '2.0.0'; # PUBLIC METHODS sub handler { my $class; $class = $#_ ? shift : __PACKAGE__; my ($res) = $class->run(@_); return $res; } # For an obscur reason, inheritance isn't possible with ApacheMP2.pm. *FORBIDDEN = *Lemonldap::NG::Handler::ApacheMP2::FORBIDDEN; *HTTP_UNAUTHORIZED = *Lemonldap::NG::Handler::ApacheMP2::HTTP_UNAUTHORIZED; *REDIRECT = *Lemonldap::NG::Handler::ApacheMP2::REDIRECT; *OK = *Lemonldap::NG::Handler::ApacheMP2::OK; *DECLINED = *Lemonldap::NG::Handler::ApacheMP2::DECLINED; *DONE = *Lemonldap::NG::Handler::ApacheMP2::DONE; *SERVER_ERROR = *Lemonldap::NG::Handler::ApacheMP2::SERVER_ERROR; *AUTH_REQUIRED = *Lemonldap::NG::Handler::ApacheMP2::AUTH_REQUIRED; *MAINTENANCE = *Lemonldap::NG::Handler::ApacheMP2::MAINTENANCE; *_lmLog = *Lemonldap::NG::Handler::ApacheMP2::_lmLog; *addToHtmlHead = *Lemonldap::NG::Handler::ApacheMP2::addToHtmlHead; *args = *Lemonldap::NG::Handler::ApacheMP2::args; *flatten_bb = *Lemonldap::NG::Handler::ApacheMP2::flatten_bb; *get_server_port = *Lemonldap::NG::Handler::ApacheMP2::get_server_port; *header_in = *Lemonldap::NG::Handler::ApacheMP2::header_in; *hostname = *Lemonldap::NG::Handler::ApacheMP2::hostname; *is_initial_req = *Lemonldap::NG::Handler::ApacheMP2::is_initial_req; *method = *Lemonldap::NG::Handler::ApacheMP2::method; *newRequest = *Lemonldap::NG::Handler::ApacheMP2::newRequest; *print = *Lemonldap::NG::Handler::ApacheMP2::print; *redirectFilter = *Lemonldap::NG::Handler::ApacheMP2::redirectFilter; *remote_ip = *Lemonldap::NG::Handler::ApacheMP2::remote_ip; *set_header_in = *Lemonldap::NG::Handler::ApacheMP2::set_header_in; *set_header_out = *Lemonldap::NG::Handler::ApacheMP2::set_header_out; *set_user = *Lemonldap::NG::Handler::ApacheMP2::set_user; *setPostParams = *Lemonldap::NG::Handler::ApacheMP2::setPostParams; *setServerSignature = *Lemonldap::NG::Handler::ApacheMP2::setServerSignature; *thread_share = *Lemonldap::NG::Handler::ApacheMP2::thread_share; *unparsed_uri = *Lemonldap::NG::Handler::ApacheMP2::unparsed_uri; *unset_header_in = *Lemonldap::NG::Handler::ApacheMP2::unset_header_in; *uri = *Lemonldap::NG::Handler::ApacheMP2::uri; *uri_with_args = *Lemonldap::NG::Handler::ApacheMP2::uri_with_args; *unparsed_uri = *Lemonldap::NG::Handler::ApacheMP2::unparsed_uri; __PACKAGE__->init(); 1; __END__ =head1 NAME =encoding utf8 Lemonldap::NG::Handler::AuthBasic - Perl extension to be able to authenticate users by basic web system but to use Lemonldap::NG to control authorizations. =head1 SYNOPSIS Create your own package: package My::Package; use Lemonldap::NG::Handler::AuthBasic; # IMPORTANT ORDER our @ISA = qw (Lemonldap::NG::Handler::AuthBasic); __PACKAGE__->init ( { # Local storage used for sessions and configuration localStorage => "Cache::DBFile", localStorageOptions => {...}, # How to get my configuration configStorage => { type => "DBI", dbiChain => "DBI:mysql:database=lemondb;host=$hostname", dbiUser => "lemonldap", dbiPassword => "password", } # Uncomment this to activate status module # status => 1, } ); Call your package in /conf/httpd.conf PerlRequire MyFile PerlHeaderParserHandler My::Package =head1 DESCRIPTION This library provides a way to use Lemonldap::NG to manage authorizations without using Lemonldap::NG for authentications. This can be used in conjunction with a normal Lemonldap::NG installation but to manage non-browser clients. =head1 SEE ALSO L, L =head1 AUTHOR =over =item Clement Oudot, Eclem.oudot@gmail.comE =item François-Xavier Deltombe, Efxdeltombe@gmail.com.E =item Xavier Guimard, Ex.guimard@free.frE =back =head1 BUG REPORT Use OW2 system to report bug or ask for features: L =head1 DOWNLOAD Lemonldap::NG is available at L =head1 COPYRIGHT AND LICENSE =over =item Copyright (C) 2008-2010 by Xavier Guimard, Ex.guimard@free.frE =item Copyright (C) 2012-2013 by François-Xavier Deltombe, Efxdeltombe@gmail.com.E =item Copyright (C) 2010-2012 by Clement Oudot, Eclem.oudot@gmail.comE =back This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see L. =cut