.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.if !\nF .nr F 0
.if \nF>0 \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
.\}
.\" ========================================================================
.\"
.IX Title "Lemonldap::NG::Handler::SharedConf 3pm"
.TH Lemonldap::NG::Handler::SharedConf 3pm "2018-10-07" "perl v5.26.2" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Lemonldap::NG::Handler::SharedConf \- Perl extension to use dynamic
configuration provide by Lemonldap::NG::Manager.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 10
\& package My::Package;
\& use Lemonldap::NG::Handler::SharedConf;
\& @ISA = qw(Lemonldap::NG::Handler::SharedConf);
\& _\|_PACKAGE_\|_\->init ( {
\& localStorage => "Cache::FileCache",
\& localStorageOptions => {
\& \*(Aqnamespace\*(Aq => \*(Aqlemonldap\-ng\*(Aq,
\& \*(Aqdefault_expires_in\*(Aq => 600,
\& },
\& configStorage => {
\& type => "DBI"
\& dbiChain => "DBI:mysql:database=$database;host=$hostname;port=$port",
\& dbiUser => "lemonldap",
\& dbiPassword => "password",
\& },
\& } );
.Ve
.PP
Call your package in /apache\-dir/conf/httpd.conf :
.PP
.Vb 7
\& PerlRequire MyFile
\& # TOTAL PROTECTION
\& PerlHeaderParserHandler My::Package
\& # OR SELECTED AREA
\&
\& PerlHeaderParserHandler My::Package
\&
.Ve
.PP
The configuration is loaded only at Apache start. Create an \s-1URI\s0 to force
configuration reload, so you don't need to restart Apache at each change :
.PP
.Vb 7
\& # /apache\-dir/conf/httpd.conf
\&
\& Order deny,allow
\& Deny from all
\& Allow from my.manager.com
\& PerlHeaderParserHandler My::Package\->refresh
\&
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This library inherit from Lemonldap::NG::Handler::Main to build a
complete \s-1SSO\s0 Handler System: a central database contains the policy of your
domain. People that want to access to a protected applications are redirected
to the portal that run Lemonldap::NG::Portal::SharedConf. After reading
configuration from the database and authenticating the user, it stores a key
word for each application the user is granted to access to.
Then the user is redirected to the application he wanted to access and the
Apache handler build with Lemonldap::NG::Handler::SharedConf::DBI has just
to verify that the keyword corresponding to the protected area is stored in
the database.
.SS "\s-1OVERLOADED SUBROUTINES\s0"
.IX Subsection "OVERLOADED SUBROUTINES"
\fIinit\fR
.IX Subsection "init"
.PP
Like Lemonldap::NG::Handler::Main::\fIinit()\fR but read only localStorage
related options. You may change default time between two configuration checks
with the \f(CW\*(C`checkTime\*(C'\fR parameter (default 600s).
.SH "OPERATION"
.IX Header "OPERATION"
Each new Apache child checks if there's a configuration stored in the local
store. If not, it calls getConf to get one and store it in the local store by
calling setconf.
.PP
Every 600 seconds, each Apache child checks if the local stored configuration
has changed and reload it if it has.
.PP
When refresh subroutine is called (by http for example: see synopsis), getConf
is called to get the new configuration and setconf is called to store it in the
local store.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Lemonldap::NG::Handler, Lemonldap::NG::Manager, Lemonldap::NG::Portal,
.SH "AUTHOR"
.IX Header "AUTHOR"
.IP "Clement Oudot, " 4
.IX Item "Clement Oudot, "
.PD 0
.IP "François\-Xavier Deltombe, " 4
.IX Item "François-Xavier Deltombe, "
.IP "Xavier Guimard, " 4
.IX Item "Xavier Guimard, "
.PD
.SH "BUG REPORT"
.IX Header "BUG REPORT"
Use \s-1OW2\s0 system to report bug or ask for features:
.SH "DOWNLOAD"
.IX Header "DOWNLOAD"
Lemonldap::NG is available at
.SH "COPYRIGHT AND LICENSE"
.IX Header "COPYRIGHT AND LICENSE"
.IP "Copyright (C) 2005\-2016 by Xavier Guimard, " 4
.IX Item "Copyright (C) 2005-2016 by Xavier Guimard, "
.PD 0
.IP "Copyright (C) 2012 by François\-Xavier Deltombe, " 4
.IX Item "Copyright (C) 2012 by François-Xavier Deltombe, "
.IP "Copyright (C) 2006\-2016 by Clement Oudot, " 4
.IX Item "Copyright (C) 2006-2016 by Clement Oudot, "
.PD
.PP
This library is free software; you can redistribute it and/or modify
it under the terms of the \s-1GNU\s0 General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
.PP
This program is distributed in the hope that it will be useful,
but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of
\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the
\&\s-1GNU\s0 General Public License for more details.
.PP
You should have received a copy of the \s-1GNU\s0 General Public License
along with this program. If not, see .