LEMONLDAP::NG : Better Debian structure and debconf management
This commit is contained in:
parent
cd0cf7e840
commit
0835ae9806
|
@ -81,8 +81,8 @@ manager_clean:
|
||||||
rm -vf manager*
|
rm -vf manager*
|
||||||
|
|
||||||
example: all
|
example: all
|
||||||
mkdir -p example/portal example/manager example/handler example/conf
|
mkdir -p ${EXAMPLEDIRBUILD}/portal ${EXAMPLEDIRBUILD}/manager ${EXAMPLEDIRBUILD}/handler ${EXAMPLEDIRBUILD}/conf
|
||||||
chmod 1777 example/conf
|
chmod 1777 ${EXAMPLEDIRBUILD}/conf
|
||||||
cp -a ${HANDLERDIR}/example/* ${EXAMPLEDIRBUILD}/handler
|
cp -a ${HANDLERDIR}/example/* ${EXAMPLEDIRBUILD}/handler
|
||||||
cp -a ${PORTALDIR}/example/* ${EXAMPLEDIRBUILD}/portal
|
cp -a ${PORTALDIR}/example/* ${EXAMPLEDIRBUILD}/portal
|
||||||
cp -a ${MANAGERDIR}/example/* ${EXAMPLEDIRBUILD}/manager
|
cp -a ${MANAGERDIR}/example/* ${EXAMPLEDIRBUILD}/manager
|
||||||
|
|
|
@ -12,3 +12,7 @@ Simplified manager interface fo rules:
|
||||||
* simple combobox to choose groups
|
* simple combobox to choose groups
|
||||||
- Priority: Low Status: Planning Created: 2007\04\23 21-26-18
|
- Priority: Low Status: Planning Created: 2007\04\23 21-26-18
|
||||||
TLS in LDAP connection. SSL works, but start_tls cannot yet be called.
|
TLS in LDAP connection. SSL works, but start_tls cannot yet be called.
|
||||||
|
- Priority: Normal Status: Planning Created: 2007\05\01 08-59-18
|
||||||
|
Time"-"out system
|
||||||
|
- Priority: Normal Status: In progress Created: 2007\05\01 08-59-46
|
||||||
|
Debconf : LDAP parameters + session directory
|
||||||
|
|
|
@ -1,4 +1,54 @@
|
||||||
lemonldap-ng for Debian
|
lemonldap-ng for Debian
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
-- Xavier Guimard <x.guimard@free.fr> Sun, 17 Dec 2006 17:46:47 +0100
|
Topics:
|
||||||
|
1 - Configuration storage
|
||||||
|
2 - Portal installation
|
||||||
|
3 - Manager installation
|
||||||
|
4 - Area protection
|
||||||
|
|
||||||
|
|
||||||
|
I - LEMONLDAP::NG CONFIGURATION STORAGE
|
||||||
|
---------------------------------------
|
||||||
|
Package: liblemonldap-ng-conf-perl
|
||||||
|
|
||||||
|
Lemonldap::NG configuration is stored by default in /var/lib/lemonldap-ng/conf.
|
||||||
|
Modify /etc/lemonldap-ng/storage.conf to change configuration storage.
|
||||||
|
|
||||||
|
1.1 - Migrating from 'File' to 'DBI'
|
||||||
|
|
||||||
|
To use DBI mechanism to store configuration, you have to create database. An
|
||||||
|
example is given for MySQL in the file
|
||||||
|
/usr/share/doc/liblemonldap-ng-conf-perl/examples/lmConfig.mysql.
|
||||||
|
If you have a running configuration, use this to populate SQL database :
|
||||||
|
|
||||||
|
perl /usr/share/lemonldap-ng/bin/lmConfig_File2MySQL \
|
||||||
|
/var/lib/lemonldap-ng/conf/lmConf-<last-number>
|
||||||
|
|
||||||
|
|
||||||
|
II - LEMONLDAP::NG PORTAL INSTALLATION
|
||||||
|
--------------------------------------
|
||||||
|
Package: liblemonldap-ng-portal-perl
|
||||||
|
|
||||||
|
liblemonldap-ng-portal-perl installs files named portal-apache.conf and
|
||||||
|
portal-apache2.conf in /etc/lemonldap-ng/. Include it in apache configuration
|
||||||
|
and personalize files in /var/lib/lemonldap-ng/portal.
|
||||||
|
|
||||||
|
|
||||||
|
III - LEMONLDAP::NG MANAGER INSTALLATION
|
||||||
|
----------------------------------------
|
||||||
|
Package: liblemonldap-ng-manager-perl
|
||||||
|
|
||||||
|
liblemonldap-ng-manager-perl installs files named manager-apache.conf and
|
||||||
|
manager-apache2.conf in /etc/lemonldap-ng/. Include it in apache configuration
|
||||||
|
and personalize files in /var/lib/lemonldap-ng/manager.
|
||||||
|
|
||||||
|
|
||||||
|
IV - LEMONLDAP::NG AREA PROTECTION
|
||||||
|
----------------------------------
|
||||||
|
Package: liblemonldap-ng-handler-perl
|
||||||
|
|
||||||
|
liblemonldap-ng-handler-perl installs a file named MyHandler.pm in
|
||||||
|
/var/lib/lemonldap-ng/handler/. See handler-apache.conf or handler-apache2.conf
|
||||||
|
in /usr/share/doc/liblemonldap-ng-handler-perl/examples/ to know how to use it.
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,11 @@ lemonldap-ng (0.8.1.2) unstable; urgency=low
|
||||||
* New: port is now checked in portal redirection
|
* New: port is now checked in portal redirection
|
||||||
* Different configurations can now be used on the same server at the same
|
* Different configurations can now be used on the same server at the same
|
||||||
time
|
time
|
||||||
* New debian structure: lemonldap-ng is splitted in 5 packages and default
|
* New debian structure: lemonldap-ng is splitted in 5 packages, default
|
||||||
configuration file has moved to /var/lib/lemonldap-ng/conf/
|
configuration file has moved to /var/lib/lemonldap-ng/conf/ and first
|
||||||
|
configuration file is managed by debconf
|
||||||
|
|
||||||
-- Xavier Guimard <x.guimard@free.fr> Sun, 29 Apr 2007 14:00:39 +0200
|
-- Xavier Guimard <x.guimard@free.fr> Tue, 01 May 2007 16:18:47 +0200
|
||||||
|
|
||||||
lemonldap-ng (0.8.1.1) unstable; urgency=low
|
lemonldap-ng (0.8.1.1) unstable; urgency=low
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
package Lemonldap::NG::Conf;
|
||||||
|
|
||||||
|
our $configStorage;
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
open F, '/etc/lemonldap-ng/storage.conf' or die "/etc/lemonldap-ng/storage.conf: $!";
|
||||||
|
while(<F>) {
|
||||||
|
next if(/^\s*$/ or /^\s*#/);
|
||||||
|
chomp;
|
||||||
|
/^\s*([\w]+)[\s=:]+(["']?)([\S].*[\S])\2.*$/ or next;
|
||||||
|
$configStorage->{$1} = $3;
|
||||||
|
my $k = $1;
|
||||||
|
if($configStorage->{$k} =~ /^([{\[]).*[}\]]$/) {
|
||||||
|
eval "\$configStorage->{$k} = $configStorage->{$k}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close F;
|
||||||
|
}
|
||||||
|
1;
|
|
@ -14,12 +14,12 @@ Description: Lemonldap::NG Web-SSO system
|
||||||
|
|
||||||
Package: liblemonldap-ng-handler-perl
|
Package: liblemonldap-ng-handler-perl
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: libapache-session-perl, libwww-perl, libcache-cache-perl, liblemonldap-ng-manager-conf-perl
|
Depends: libapache-session-perl, libwww-perl, libcache-cache-perl, liblemonldap-ng-conf-perl
|
||||||
Description: Lemonldap::NG apache module part
|
Description: Lemonldap::NG apache module part
|
||||||
Lemonldap::NG is a complete Web-SSO system that can run with reverse-proxies
|
Lemonldap::NG is a complete Web-SSO system that can run with reverse-proxies
|
||||||
or directly on application apache servers.
|
or directly on application apache servers.
|
||||||
|
|
||||||
Package: liblemonldap-ng-manager-conf-perl
|
Package: liblemonldap-ng-conf-perl
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: libdbi-perl
|
Depends: libdbi-perl
|
||||||
Recommends: libsoap-lite-perl
|
Recommends: libsoap-lite-perl
|
||||||
|
@ -29,7 +29,7 @@ Description: Lemonldap::NG apache manager part
|
||||||
|
|
||||||
Package: liblemonldap-ng-manager-perl
|
Package: liblemonldap-ng-manager-perl
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: libxml-simple-perl, liblemonldap-ng-manager-conf-perl
|
Depends: libxml-simple-perl, liblemonldap-ng-conf-perl
|
||||||
Recommends: libcache-cache-perl, libapache-session-perl, libsoap-lite-perl
|
Recommends: libcache-cache-perl, libapache-session-perl, libsoap-lite-perl
|
||||||
Description: Lemonldap::NG apache manager part
|
Description: Lemonldap::NG apache manager part
|
||||||
Lemonldap::NG is a complete Web-SSO system that can run with reverse-proxies
|
Lemonldap::NG is a complete Web-SSO system that can run with reverse-proxies
|
||||||
|
@ -37,7 +37,7 @@ Description: Lemonldap::NG apache manager part
|
||||||
|
|
||||||
Package: liblemonldap-ng-portal-perl
|
Package: liblemonldap-ng-portal-perl
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: libapache-session-perl, libnet-ldap-perl, liblemonldap-ng-manager-conf-perl
|
Depends: libapache-session-perl, libnet-ldap-perl, liblemonldap-ng-conf-perl
|
||||||
Recommends: liblasso-perl
|
Recommends: liblasso-perl
|
||||||
Description: Lemonldap::NG apache authentication portal part
|
Description: Lemonldap::NG apache authentication portal part
|
||||||
Lemonldap::NG is a complete Web-SSO system that can run with reverse-proxies
|
Lemonldap::NG is a complete Web-SSO system that can run with reverse-proxies
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
usr/share
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<VirtualHost *>
|
||||||
|
ServerName protected.example.com
|
||||||
|
PerlRequire /var/lib/lemonldap-ng/handler/MyHandler.pm
|
||||||
|
|
||||||
|
# Area protection
|
||||||
|
PerlHeaderParserHandler My::Package
|
||||||
|
|
||||||
|
# Configuration reload mechanism
|
||||||
|
<Location /reload>
|
||||||
|
Order deny,allow
|
||||||
|
Deny from all
|
||||||
|
Allow from 127.0.0.0/8
|
||||||
|
PerlHeaderParserHandler My::Package->refresh
|
||||||
|
</Location>
|
||||||
|
|
||||||
|
# Optional interception of the logout URL
|
||||||
|
<Location /logout>
|
||||||
|
PerlHeaderParserHandler My::Package->logout
|
||||||
|
</Location>
|
||||||
|
</VirtualHost>
|
|
@ -0,0 +1,21 @@
|
||||||
|
PerlOptions +GlobalRequest
|
||||||
|
<VirtualHost *>
|
||||||
|
ServerName protected.example.com
|
||||||
|
PerlRequire /var/lib/lemonldap-ng/handler/MyHandler.pm
|
||||||
|
|
||||||
|
# Area protection
|
||||||
|
PerlHeaderParserHandler My::Package
|
||||||
|
|
||||||
|
# Configuration reload mechanism
|
||||||
|
<Location /reload>
|
||||||
|
Order deny,allow
|
||||||
|
Deny from all
|
||||||
|
Allow from 127.0.0.0/8
|
||||||
|
PerlHeaderParserHandler My::Package->refresh
|
||||||
|
</Location>
|
||||||
|
|
||||||
|
# Optional interception of the logout URL
|
||||||
|
<Location /logout>
|
||||||
|
PerlHeaderParserHandler My::Package->logout
|
||||||
|
</Location>
|
||||||
|
</VirtualHost>
|
|
@ -1,3 +1,4 @@
|
||||||
|
debian/README.Debian
|
||||||
doc/*
|
doc/*
|
||||||
README
|
README
|
||||||
INSTALL
|
INSTALL
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
example/*
|
debian/tmp/var/lib/lemonldap-ng/test.pl
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
/etc/lemonldap-ng/storage.conf
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
db_input high liblemonldap-ng-conf-perl/newDirInfo || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/domain || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/ldapServer || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/ldapPort || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/ldapBase || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/managerDn || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/managerPassword || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/portal || true
|
||||||
|
|
||||||
|
db_input medium liblemonldap-ng-conf-perl/howto || true
|
||||||
|
|
||||||
|
db_go || true
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
/etc/lemonldap-ng
|
||||||
|
/usr/share
|
||||||
|
/usr/share/lemonldap-ng/bin
|
||||||
|
/var/lib/lemonldap-ng
|
|
@ -0,0 +1,2 @@
|
||||||
|
debian/README.Debian
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/apache-session-mysql.sql
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/lmConfig.mysql
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/conf
|
|
@ -0,0 +1,7 @@
|
||||||
|
debian/tmp/usr/share/perl5/Lemonldap/NG/Manager/Conf*
|
||||||
|
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::Conf*
|
||||||
|
debian/tmp/usr/share/man/man1/lmConfig_File2MySQL.1p
|
||||||
|
debian/tmp/usr/bin/lmConfig* /usr/share/lemonldap-ng/bin
|
||||||
|
debian/configStorage.pm /usr/share/lemonldap-ng
|
||||||
|
debian/storage.conf /etc/lemonldap-ng
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/conf /var/lib/lemonldap-ng
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Maintainer: #DEBHELPER#
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
FIRSTCONFFILE=/var/lib/lemonldap-ng/conf/lmConf-1
|
||||||
|
|
||||||
|
if [ "$1" == "configure" ]
|
||||||
|
then
|
||||||
|
chown -R www-data.www-data /var/lib/lemonldap-ng/conf
|
||||||
|
chmod 750 /var/lib/lemonldap-ng/conf
|
||||||
|
chmod 640 /var/lib/lemonldap-ng/conf/*
|
||||||
|
chgrp www-data /etc/lemonldap-ng/storage.conf
|
||||||
|
chmod 640 /etc/lemonldap-ng/storage.conf
|
||||||
|
|
||||||
|
for i in domain ldapServer ldapPort ldapBase managerDn managerPassword portal; do
|
||||||
|
db_get liblemonldap-ng-conf-perl/$i || true
|
||||||
|
perl -000 -i -pe "s#^$i(\\n\\s+)('?)[^\\n]*?('?)\$#$i\${1}\${2}$RET\${3}#m" $FIRSTCONFFILE
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
exit 0
|
|
@ -0,0 +1,92 @@
|
||||||
|
Template: liblemonldap-ng-conf-perl/newDirInfo
|
||||||
|
Type: note
|
||||||
|
Description: Lemonldap::NG default configuration directory has moved to /var/lib/lemondap-ng/conf/
|
||||||
|
Description-fr: Le répertoire de configuration par défaut est maintenant /var/lib/lemondap-ng/conf/
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/ldapServer
|
||||||
|
Type: string
|
||||||
|
Default: localhost
|
||||||
|
Description: LDAP server
|
||||||
|
Set here name or IP address of the LDAP server that has to be used by
|
||||||
|
Lemonldap::NG.
|
||||||
|
You can modify this value later using the Lemonldap::NG manager.
|
||||||
|
Description-fr: Serveur LDAP
|
||||||
|
Indiquez ici le nom ou l'adresse IP du serveur LDAP que Lemonldap::NG utilisera.
|
||||||
|
Vous pourrez modifier cette valeur ultérieurement dans le gestionnaire
|
||||||
|
Lemonldap::NG.
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/domain
|
||||||
|
Type: string
|
||||||
|
Default: example.com
|
||||||
|
Description: Lemonldap::NG DNS domain
|
||||||
|
Set here the main domain protected by Lemonldap::NG.
|
||||||
|
You can modify this value later using the Lemonldap::NG manager.
|
||||||
|
Description-fr: Domaine DNS de Lemonldap::NG
|
||||||
|
Indiquez ici le domaine principal protégé par lemonldap::NG.
|
||||||
|
Vous pourrez modifier cette valeur ultérieurement dans le gestionnaire
|
||||||
|
Lemonldap::NG.
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/portal
|
||||||
|
Type: string
|
||||||
|
Default: http://auth.example.com/
|
||||||
|
Description: Lemonldap::NG portal
|
||||||
|
Set here the Lemonldap::NG portal URL.
|
||||||
|
You can modify this value later using the Lemonldap::NG manager.
|
||||||
|
Description-fr: Port du serveur LDAP
|
||||||
|
Indiquez ici l'URL du portail Lemonldap::NG.
|
||||||
|
Vous pourrez modifier cette valeur ultérieurement dans le gestionnaire
|
||||||
|
Lemonldap::NG.
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/ldapPort
|
||||||
|
Type: string
|
||||||
|
Default: 389
|
||||||
|
Description: LDAP server port
|
||||||
|
Set here the port used by the LDAP server.
|
||||||
|
You can modify this value later using the Lemonldap::NG manager.
|
||||||
|
Description-fr: Port du serveur LDAP
|
||||||
|
Indiquez ici le numéro du port du serveur LDAP.
|
||||||
|
Vous pourrez modifier cette valeur ultérieurement dans le gestionnaire
|
||||||
|
Lemonldap::NG.
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/ldapBase
|
||||||
|
Type: string
|
||||||
|
Default: dc=example,dc=com
|
||||||
|
Description: LDAP search base
|
||||||
|
Set here the search base to use in LDAP queries.
|
||||||
|
You can modify this value later using the Lemonldap::NG manager.
|
||||||
|
Description-fr: Base de recherche LDAP
|
||||||
|
Indiquez ici la base de recherche des requêtes LDAP.
|
||||||
|
Vous pourrez modifier cette valeur ultérieurement dans le gestionnaire
|
||||||
|
Lemonldap::NG.
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/managerDn
|
||||||
|
Type: string
|
||||||
|
Description: LDAP account
|
||||||
|
Set here the account that Lemonldap::NG has to use for its LDAP requests.
|
||||||
|
Leaving it blank causes Lemonldap::NG to use anonymous connections.
|
||||||
|
You can modify this value later using the Lemonldap::NG manager.
|
||||||
|
Description-fr: Compte LDAP
|
||||||
|
Indiquez ici le compte que Lemonldap::NG doit utiliser pour ses requêtes
|
||||||
|
LDAP. Laissez le champ vide pour utiliser des connexions anonymes.
|
||||||
|
Vous pourrez modifier cette valeur ultérieurement dans le gestionnaire
|
||||||
|
Lemonldap::NG.
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/managerPassword
|
||||||
|
Type: string
|
||||||
|
Description: LDAP password
|
||||||
|
Set here the password for the Lemonldap::NG LDAP account.
|
||||||
|
You can modify this value later using the Lemonldap::NG manager.
|
||||||
|
Description-fr: Mot de passe LDAP
|
||||||
|
Indiquez ici le mot de passe du compte LDAP de Lemonldap::NG.
|
||||||
|
Vous pourrez modifier cette valeur ultérieurement dans le gestionnaire
|
||||||
|
Lemonldap::NG.
|
||||||
|
|
||||||
|
Template: liblemonldap-ng-conf-perl/howto
|
||||||
|
Type: note
|
||||||
|
Description: Lemonldap::NG is ready
|
||||||
|
Lemonldap::NG is ready to work. See
|
||||||
|
/usr/share/liblemonldap-ng-conf-perl/README.Debian to see how to activate it.
|
||||||
|
Description-fr: Lemonldap::NG est prêt
|
||||||
|
Lemonldap::NG est prêt à fonctionner. Reportez-vous au fichier
|
||||||
|
/usr/share/liblemonldap-ng-conf-perl/README.Debian pour voir comment l'activer
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
/usr/share
|
||||||
|
/var/lib/lemonldap-ng/handler
|
||||||
|
/var/lib/lemonldap-ng/sessions
|
|
@ -0,0 +1,2 @@
|
||||||
|
debian/README.Debian
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
example/handler/
|
debian/tmp/var/lib/lemonldap-ng/handler/autoProtectedCGI.pl
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/handler/MyHandler*.pm
|
||||||
|
debian/handler-apache*.conf
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Maintainer: #DEBHELPER#
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
EXAMPLEHANDLERFILE=/usr/share/doc/liblemonldap-ng-handler-perl/examples/MyHandler.pm
|
||||||
|
HANDLERFILE=/var/lib/lemonldap-ng/handler/MyHandler.pm
|
||||||
|
SESSIONSDIR=/var/lib/lemonldap-ng/sessions
|
||||||
|
|
||||||
|
if [ "$1" == "configure" ]
|
||||||
|
then
|
||||||
|
[ -e $HANDLERFILE ] || \
|
||||||
|
perl -000 -pe 's/(configStorage\s*=>\s*){[^}]+}/$1\$Lemonldap::NG::Conf::configStorage/;
|
||||||
|
s#^use#\nrequire "/usr/share/lemonldap-ng/configStorage.pm";\nuse#m;' \
|
||||||
|
$EXAMPLEHANDLERFILE >$HANDLERFILE
|
||||||
|
chmod 770 $SESSIONSDIR;
|
||||||
|
chown www-data.www-data $SESSIONSDIR;
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
. /usr/share/debconf/confmodule
|
|
||||||
db_input high liblemonldap-ng-manager-conf-perl/newDirInfo || true
|
|
||||||
db_go || true
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
/var/lib/lemonldap-ng
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
example/conf/
|
|
||||||
example/apache-session-mysql.sql
|
|
||||||
example/lmConfig.mysql
|
|
|
@ -1,5 +0,0 @@
|
||||||
debian/tmp/usr/share/perl5/Lemonldap/NG/Manager/Conf*
|
|
||||||
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::Conf*
|
|
||||||
debian/tmp/usr/share/man/man1/lmConfig_File2MySQL.1p
|
|
||||||
debian/tmp/usr/bin/lmConfig*
|
|
||||||
example/conf /var/lib/lemonldap-ng/
|
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Maintainer: #DEBHELPER#
|
|
||||||
|
|
||||||
. /usr/share/debconf/confmodule
|
|
||||||
|
|
||||||
if [ "$1" == "configure" ]
|
|
||||||
then
|
|
||||||
chown -R www-data /var/lib/lemonldap-ng/conf
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
Template: liblemonldap-ng-manager-conf-perl/newDirInfo
|
|
||||||
Type: note
|
|
||||||
Description: Lemonldap::NG default configuration directory has moved to /var/lib/lemondap-ng/conf/
|
|
||||||
Description-fr: Le répertoire de configuration par défaut est maintenant /var/lib/lemondap-ng/conf/
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
/etc/lemonldap-ng/apply.conf
|
||||||
|
/etc/lemonldap-ng/manager-apache.conf
|
||||||
|
/etc/lemonldap-ng/manager-apache2.conf
|
|
@ -0,0 +1,3 @@
|
||||||
|
/etc/lemonldap-ng
|
||||||
|
/usr/share/lemonldap-ng/bin
|
||||||
|
/var/lib/lemonldap-ng/manager
|
|
@ -0,0 +1,2 @@
|
||||||
|
debian/README.Debian
|
||||||
|
|
|
@ -1 +1,4 @@
|
||||||
example/manager
|
debian/tmp/var/lib/lemonldap-ng/manager/apply.conf
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/index.pl
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/lmConfig.mysql
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/soapserver.pl
|
||||||
|
|
|
@ -11,3 +11,8 @@ debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager.3pm
|
||||||
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::SOAPServer.3pm
|
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::SOAPServer.3pm
|
||||||
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::Apache::Session::SOAP.3pm
|
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::Apache::Session::SOAP.3pm
|
||||||
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::Restricted.3pm
|
debian/tmp/usr/share/man/man3/Lemonldap::NG::Manager::Restricted.3pm
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/apply.conf /etc/lemonldap-ng
|
||||||
|
debian/manager-apache*.conf /etc/lemonldap-ng
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/imgs
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/lemonldap-ng-manager.js
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/scripts/lmConfigEditor /usr/share/lemonldap-ng/bin
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Maintainer: #DEBHELPER#
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
EXAMPLEMANAGERFILE=/usr/share/doc/liblemonldap-ng-manager-perl/examples/index.pl
|
||||||
|
MANAGERFILE=/var/lib/lemonldap-ng/manager/index.pl
|
||||||
|
|
||||||
|
if [ "$1" == "configure" ]
|
||||||
|
then
|
||||||
|
[ -e $MANAGERFILE ] || \
|
||||||
|
perl -000 -pe 's/(configStorage\s*=>\s*){[^}]+}/$1\$Lemonldap::NG::Conf::configStorage/;
|
||||||
|
s#^use#\nrequire "/usr/share/lemonldap-ng/configStorage.pm";\nuse#m;
|
||||||
|
s#(applyConfFile\s*=>\s*)(['"'"'"]).*?\2#$1$2/etc/lemonldap-ng/apply.conf$2#' \
|
||||||
|
$EXAMPLEMANAGERFILE >$MANAGERFILE
|
||||||
|
chmod +x $MANAGERFILE
|
||||||
|
chgrp www-data /etc/lemonldap-ng/apply.conf
|
||||||
|
chmod 640 /etc/lemonldap-ng/apply.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
/etc/lemonldap-ng/portal-apache.conf
|
||||||
|
/etc/lemonldap-ng/portal-apache2.conf
|
|
@ -0,0 +1,4 @@
|
||||||
|
#
|
||||||
|
# Regular cron jobs for the Lemonldap::NG portal
|
||||||
|
#
|
||||||
|
*/10 * * * * www-data test -x /usr/share/lemonldap-ng/bin/purgeCentralCache
|
|
@ -0,0 +1,4 @@
|
||||||
|
/etc/lemonldap-ng
|
||||||
|
/usr/share/lemonldap-ng/bin
|
||||||
|
/var/lib/lemonldap-ng/portal
|
||||||
|
/var/lib/lemonldap-ng/sessions
|
|
@ -0,0 +1,2 @@
|
||||||
|
debian/README.Debian
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
example/portal
|
debian/tmp/var/lib/lemonldap-ng/portal/*
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
debian/tmp/usr/share/perl5/Lemonldap/NG/Portal*
|
debian/tmp/usr/share/perl5/Lemonldap/NG/Portal*
|
||||||
debian/tmp/usr/share/perl5/auto/Lemonldap/NG/Portal
|
debian/tmp/usr/share/perl5/auto/Lemonldap/NG/Portal
|
||||||
debian/tmp/usr/share/man/man3/Lemonldap::NG::Portal*
|
debian/tmp/usr/share/man/man3/Lemonldap::NG::Portal*
|
||||||
|
debian/portal-apache*.conf /etc/lemonldap-ng
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Maintainer: #DEBHELPER#
|
||||||
|
|
||||||
|
. /usr/share/debconf/confmodule
|
||||||
|
|
||||||
|
EXAMPLEPORTALFILE=/usr/share/doc/liblemonldap-ng-portal-perl/examples/index.pl
|
||||||
|
PORTALFILE=/var/lib/lemonldap-ng/portal/index.pl
|
||||||
|
EXAMPLECLEANERFILE=/usr/share/doc/liblemonldap-ng-portal-perl/examples/scripts/purgeCentralCache
|
||||||
|
CLEANERFILE=/usr/share/lemonldap-ng/bin/purgeCentralCache
|
||||||
|
SESSIONSDIR=/var/lib/lemonldap-ng/sessions
|
||||||
|
|
||||||
|
if [ "$1" == "configure" ]
|
||||||
|
then
|
||||||
|
[ -e $PORTALFILE ] || \
|
||||||
|
perl -000 -pe 's/(configStorage\s*=>\s*){[^}]+}/$1\$Lemonldap::NG::Conf::configStorage/;
|
||||||
|
s#^use#\nrequire "/usr/share/lemonldap-ng/configStorage.pm";\nuse#m;' \
|
||||||
|
$EXAMPLEPORTALFILE >$PORTALFILE
|
||||||
|
[ -e $CLEANERFILE ] || \
|
||||||
|
perl -000 -pe 's/(configStorage\s*=>\s*){[^}]+}/$1\$Lemonldap::NG::Conf::configStorage/;
|
||||||
|
s#^use#\nrequire "/usr/share/lemonldap-ng/configStorage.pm";\nuse#m;' \
|
||||||
|
$EXAMPLECLEANERFILE >$CLEANERFILE
|
||||||
|
chmod +x $PORTALFILE
|
||||||
|
chmod +x $CLEANERFILE
|
||||||
|
chmod 770 $SESSIONSDIR;
|
||||||
|
chown www-data.www-data $SESSIONSDIR;
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<VirtualHost *>
|
||||||
|
ServerName manager.example.com
|
||||||
|
|
||||||
|
# DocumentRoot
|
||||||
|
DocumentRoot /var/lib/lemonldap-ng/manager
|
||||||
|
<Directory /var/lib/lemonldap-ng/manager>
|
||||||
|
Order deny,allow
|
||||||
|
Deny from all
|
||||||
|
Allow from 127.0.0.0/8
|
||||||
|
Options +ExecCGI
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Manager must be interpreted by Perl
|
||||||
|
<Files *.pl>
|
||||||
|
SetHandler perl-script
|
||||||
|
PerlHandler Apache::Registry
|
||||||
|
</Files>
|
||||||
|
|
||||||
|
<IfModule mod_dir.c>
|
||||||
|
DirectoryIndex index.pl index.html
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<VirtualHost *>
|
||||||
|
ServerName manager.example.com
|
||||||
|
|
||||||
|
# DocumentRoot
|
||||||
|
DocumentRoot /var/lib/lemonldap-ng/manager
|
||||||
|
<Directory /var/lib/lemonldap-ng/manager>
|
||||||
|
Order deny,allow
|
||||||
|
Deny from all
|
||||||
|
Allow from 127.0.0.0/8
|
||||||
|
Options +ExecCGI
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Manager must be interpreted by Perl
|
||||||
|
<Files *.pl>
|
||||||
|
SetHandler perl-script
|
||||||
|
PerlResponseHandler ModPerl::Registry
|
||||||
|
</Files>
|
||||||
|
|
||||||
|
<IfModule mod_dir.c>
|
||||||
|
DirectoryIndex index.pl index.html
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<VirtualHost *>
|
||||||
|
ServerName auth.example.com
|
||||||
|
|
||||||
|
# DocumentRoot
|
||||||
|
DocumentRoot /var/lib/lemonldap-ng/portal
|
||||||
|
<Directory /var/lib/lemonldap-ng/portal>
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
Options +ExecCGI
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Portal must be interpreted by Perl
|
||||||
|
<Files *.pl>
|
||||||
|
SetHandler perl-script
|
||||||
|
PerlHandler Apache::Registry
|
||||||
|
</Files>
|
||||||
|
|
||||||
|
<IfModule mod_dir.c>
|
||||||
|
DirectoryIndex index.pl index.html
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
<VirtualHost *>
|
||||||
|
ServerName auth.example.com
|
||||||
|
|
||||||
|
# DocumentRoot
|
||||||
|
DocumentRoot /var/lib/lemonldap-ng/portal
|
||||||
|
<Directory /var/lib/lemonldap-ng/portal>
|
||||||
|
Order allow,deny
|
||||||
|
Allow from all
|
||||||
|
Options +ExecCGI
|
||||||
|
</Directory>
|
||||||
|
|
||||||
|
# Portal must be interpreted by Perl
|
||||||
|
<Files *.pl>
|
||||||
|
SetHandler perl-script
|
||||||
|
PerlResponseHandler ModPerl::Registry
|
||||||
|
</Files>
|
||||||
|
|
||||||
|
<IfModule mod_dir.c>
|
||||||
|
DirectoryIndex index.pl index.html
|
||||||
|
</IfModule>
|
||||||
|
|
||||||
|
</VirtualHost>
|
||||||
|
|
|
@ -49,8 +49,12 @@ install: build
|
||||||
# Add here commands to install the package into debian/lemonldap-ng.
|
# Add here commands to install the package into debian/lemonldap-ng.
|
||||||
$(MAKE) test
|
$(MAKE) test
|
||||||
$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp PREFIX=/usr
|
$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp PREFIX=/usr
|
||||||
$(MAKE) example EXAMPLEDIR=/usr/share/doc/lemonldap-ng/examples/ EXAMPLECONFDIR=/var/lib/lemonldap-ng/conf
|
$(MAKE) example EXAMPLEDIRBUILD=debian/tmp/var/lib/lemonldap-ng EXAMPLEDIR=/var/lib/lemonldap-ng/ EXAMPLECONFDIR=/var/lib/lemonldap-ng/conf
|
||||||
|
cp debian/tmp/var/lib/lemonldap-ng/handler/MyHandler.pm debian/tmp/var/lib/lemonldap-ng/handler/MyHandler-Debian.pm
|
||||||
|
mv debian/tmp/var/lib/lemonldap-ng/index.pl debian/tmp/var/lib/lemonldap-ng/test.pl
|
||||||
|
perl -000 -i -pe 's/(new\s*\(\s*){[^}]+}/$$1\$$Lemonldap::NG::Conf::configStorage/; s#^use#\nrequire "/usr/share/lemonldap-ng/configStorage.pm";\nuse#m;' \
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/manager/scripts/lmConfigEditor \
|
||||||
|
debian/tmp/var/lib/lemonldap-ng/handler/MyHandler-Debian.pm
|
||||||
|
|
||||||
# Build architecture-independent files here.
|
# Build architecture-independent files here.
|
||||||
binary-indep: build install
|
binary-indep: build install
|
||||||
|
@ -62,7 +66,12 @@ binary-arch: build install
|
||||||
dh_testroot
|
dh_testroot
|
||||||
dh_installchangelogs
|
dh_installchangelogs
|
||||||
dh_installdocs
|
dh_installdocs
|
||||||
|
mkdir debian/tmp/var/lib/lemonldap-ng/protected
|
||||||
|
cp _example/index.pl debian/tmp/var/lib/lemonldap-ng/protected
|
||||||
|
find debian/tmp/var/lib/lemonldap-ng -type f -perm /111 -exec chmod -x {} \;
|
||||||
|
chmod +x debian/tmp/var/lib/lemonldap-ng/manager/scripts/lmConfigEditor
|
||||||
dh_installexamples
|
dh_installexamples
|
||||||
|
find debian/lemonldap-ng -type f -exec perl -i -pe 's#__DIR__/?#'/var/lib/lemonldap-ng'#g;s#__CONFDIR__/?#'/var/lib/lemonldap-ng/conf'#g;' {} \;
|
||||||
dh_install
|
dh_install
|
||||||
# dh_installmenu
|
# dh_installmenu
|
||||||
dh_installdebconf
|
dh_installdebconf
|
||||||
|
@ -72,13 +81,12 @@ binary-arch: build install
|
||||||
# dh_installmime
|
# dh_installmime
|
||||||
# dh_python
|
# dh_python
|
||||||
# dh_installinit
|
# dh_installinit
|
||||||
# dh_installcron
|
dh_installcron
|
||||||
# dh_installinfo
|
# dh_installinfo
|
||||||
dh_installman
|
dh_installman
|
||||||
dh_link
|
dh_link
|
||||||
dh_strip
|
dh_strip
|
||||||
dh_compress
|
dh_compress
|
||||||
gunzip $(CURDIR)/debian/lemonldap-ng/usr/share/doc/lemonldap-ng/examples/manager/lemonldap-ng-manager.js.gz
|
|
||||||
dh_fixperms
|
dh_fixperms
|
||||||
# dh_perl
|
# dh_perl
|
||||||
# dh_makeshlibs
|
# dh_makeshlibs
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
#
|
||||||
|
# This file contains parameters used by Lemonldap::NG to find its configuration
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# 1 - Type
|
||||||
|
#
|
||||||
|
# You can use one of the following:
|
||||||
|
# * File: you have to set 'dirName' parameter. Example:
|
||||||
|
# type = File
|
||||||
|
# dirName = /var/lib/lemonldap-ng/conf
|
||||||
|
#
|
||||||
|
# * DBI : you have to set 'dbiChain' (required) and 'dbiUser' and 'dbiPassword'
|
||||||
|
# if needed. Example:
|
||||||
|
# type = DBI
|
||||||
|
# dbiChain = DBI:mysql:database=lemonldap-ng,host=1.2.3.4
|
||||||
|
# dbiUser = lemonldap
|
||||||
|
# dbiPassword = password
|
||||||
|
#
|
||||||
|
# * SOAP: SOAP configuration access is a sort of proxy: the SOAP server that
|
||||||
|
# runs Lemonldap::NG::Manager::SOAPServer is configured to use the real
|
||||||
|
# session storage type (DBI or File for example).
|
||||||
|
# You have to set 'proxy' parameter. Example
|
||||||
|
# type = SOAP
|
||||||
|
# proxy = https://manager.example.com/soapmanager.pl
|
||||||
|
# proxyOptions = { timeout => 5 }
|
||||||
|
|
||||||
|
type = File
|
||||||
|
dirName = /var/lib/lemonldap-ng/conf
|
|
@ -7,6 +7,9 @@ __PACKAGE__->init ( {
|
||||||
localStorageOptions => {
|
localStorageOptions => {
|
||||||
'namespace' => 'MyNamespace',
|
'namespace' => 'MyNamespace',
|
||||||
'default_expires_in' => 600,
|
'default_expires_in' => 600,
|
||||||
|
'directory_umask' => '007',
|
||||||
|
'cache_root' => '/tmp',
|
||||||
|
'cache_depth' => 5,
|
||||||
},
|
},
|
||||||
|
|
||||||
configStorage => {
|
configStorage => {
|
||||||
|
|
|
@ -44,16 +44,16 @@ example/imgs/plus5.gif
|
||||||
example/imgs/plus_ar.gif
|
example/imgs/plus_ar.gif
|
||||||
example/imgs/tombs.gif
|
example/imgs/tombs.gif
|
||||||
example/imgs/tombs_mag.gif
|
example/imgs/tombs_mag.gif
|
||||||
|
example/index.pl
|
||||||
example/lemonldap-ng-manager.js
|
example/lemonldap-ng-manager.js
|
||||||
example/lmConfig.mysql
|
example/lmConfig.mysql
|
||||||
example/index.pl
|
|
||||||
example/scripts/lmSessionDump
|
|
||||||
example/scripts/lmConfigEditor
|
example/scripts/lmConfigEditor
|
||||||
|
example/scripts/lmSessionDump
|
||||||
example/soapserver.pl
|
example/soapserver.pl
|
||||||
lib/Lemonldap/NG/Manager.pm
|
lib/Lemonldap/NG/Manager.pm
|
||||||
lib/Lemonldap/NG/Manager/Apache/Session/SOAP.pm
|
|
||||||
lib/Lemonldap/NG/Manager/_HTML.pm
|
lib/Lemonldap/NG/Manager/_HTML.pm
|
||||||
lib/Lemonldap/NG/Manager/_i18n.pm
|
lib/Lemonldap/NG/Manager/_i18n.pm
|
||||||
|
lib/Lemonldap/NG/Manager/Apache/Session/SOAP.pm
|
||||||
lib/Lemonldap/NG/Manager/Base.pm
|
lib/Lemonldap/NG/Manager/Base.pm
|
||||||
lib/Lemonldap/NG/Manager/Conf.pm
|
lib/Lemonldap/NG/Manager/Conf.pm
|
||||||
lib/Lemonldap/NG/Manager/Conf/Constants.pm
|
lib/Lemonldap/NG/Manager/Conf/Constants.pm
|
||||||
|
@ -68,11 +68,11 @@ MANIFEST
|
||||||
META.yml Module meta-data (added by MakeMaker)
|
META.yml Module meta-data (added by MakeMaker)
|
||||||
README
|
README
|
||||||
scripts/lmConfig_File2MySQL
|
scripts/lmConfig_File2MySQL
|
||||||
TODO
|
|
||||||
t/Lemonldap-NG-Manager.t
|
|
||||||
t/Lemonldap-NG-Manager_en.t
|
|
||||||
t/Lemonldap-NG-Manager_fr.t
|
|
||||||
t/Lemonldap-NG-Manager-Conf.t
|
|
||||||
t/Lemonldap-NG-Manager-Conf-DBI.t
|
t/Lemonldap-NG-Manager-Conf-DBI.t
|
||||||
t/Lemonldap-NG-Manager-Conf-File.t
|
t/Lemonldap-NG-Manager-Conf-File.t
|
||||||
t/Lemonldap-NG-Manager-Conf-SOAP.t
|
t/Lemonldap-NG-Manager-Conf-SOAP.t
|
||||||
|
t/Lemonldap-NG-Manager-Conf.t
|
||||||
|
t/Lemonldap-NG-Manager.t
|
||||||
|
t/Lemonldap-NG-Manager_en.t
|
||||||
|
t/Lemonldap-NG-Manager_fr.t
|
||||||
|
TODO
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
Changes
|
Changes
|
||||||
example/index.pl
|
example/index.pl
|
||||||
|
example/scripts/purgeCentralCache
|
||||||
|
example/scripts/purgeCentralCache.cron.d
|
||||||
example/slavePortal.pl
|
example/slavePortal.pl
|
||||||
lib/Lemonldap/NG/Portal.pm
|
lib/Lemonldap/NG/Portal.pm
|
||||||
lib/Lemonldap/NG/Portal/_i18n.pm
|
lib/Lemonldap/NG/Portal/_i18n.pm
|
||||||
|
|
|
@ -0,0 +1,88 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# Cleaner for Lemonldap::NG : removes old sessions from Apache::Session
|
||||||
|
#
|
||||||
|
# This module is written to be used by cron to clean old sessions from
|
||||||
|
# Apache::Session.
|
||||||
|
#
|
||||||
|
# WARNING: only Apache::Session::File and Apache::Session::MySQL can be used
|
||||||
|
# here
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
|
||||||
|
sub Apache::Session::get_all_sessions {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub Apache::Session::MySQL::get_all_sessions {
|
||||||
|
my $class = shift;
|
||||||
|
my $args = shift;
|
||||||
|
my $dbh =
|
||||||
|
DBI->connect( $args->{DataSource}, $args->{UserName},
|
||||||
|
$args->{Password} )
|
||||||
|
or die("$!$@");
|
||||||
|
my $sth = $dbh->prepare('SELECT id from sessions');
|
||||||
|
$sth->execute;
|
||||||
|
my @res;
|
||||||
|
while ( my @row = $sth->fetchrow_array ) {
|
||||||
|
push @res, @row;
|
||||||
|
}
|
||||||
|
return @res;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub Apache::Session::File::get_all_sessions {
|
||||||
|
my $class = shift;
|
||||||
|
my $args = shift;
|
||||||
|
$args->{Directory} ||= '/tmp';
|
||||||
|
unless ( opendir DIR, $args->{Directory} ) {
|
||||||
|
die "Cannot open directory $args->{Directory}\n";
|
||||||
|
}
|
||||||
|
my @t =
|
||||||
|
grep { -f "$args->{Directory}/$_" and /^[A-Za-z0-9@\-]+$/ }
|
||||||
|
readdir(DIR);
|
||||||
|
closedir DIR;
|
||||||
|
return @t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
use Lemonldap::NG::Manager::Conf;
|
||||||
|
use Lemonldap::NG::Manager::Conf::Constants;
|
||||||
|
use strict;
|
||||||
|
use DBI;
|
||||||
|
|
||||||
|
my $lmconf = Lemonldap::NG::Manager::Conf->new(
|
||||||
|
{
|
||||||
|
type => 'File',
|
||||||
|
dirName => '__CONFDIR__',
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
my $conf = $lmconf->getConf or die "Unable to get configuration ($!)";
|
||||||
|
|
||||||
|
my $tmp = $conf->{globalStorage};
|
||||||
|
|
||||||
|
eval "use $tmp";
|
||||||
|
die $@ if ($@);
|
||||||
|
|
||||||
|
$conf->{globalStorageOptions}->{timeout} ||= 7200;
|
||||||
|
|
||||||
|
my @t = $tmp->get_all_sessions( $conf->{globalStorageOptions} );
|
||||||
|
|
||||||
|
for my $id (@t) {
|
||||||
|
my %h;
|
||||||
|
eval { tie %h, $tmp, $id, $conf->{globalStorageOptions} };
|
||||||
|
if ($@) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ( time - $h{_utime} > $conf->{globalStorageOptions}->{timeout} ) {
|
||||||
|
tied(%h)->delete;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
untie %h;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
#
|
||||||
|
# Regular cron jobs for the Lemonldap::NG portal
|
||||||
|
#
|
||||||
|
*/10 * * * * www-data test -x /usr/share/lemonldap-ng/bin/purgeCentralCache
|
Loading…
Reference in New Issue