Sessions in PostGreSQL

PostGreSQL configuration

We suppose that LemonLDAP::Ng used a local database.

Database creation

For example, with Debian:

# su - potsgres
$ createuser lemonldap-ng -P
Entrez le mot de passe pour le nouveau rôle : <PASSWORD>
Entrez-le de nouveau : <PASSWORD>
Le nouveau rôle est-il un super-utilisateur ? (o/n) n
Le nouveau rôle doit-il être autorisé à créer des bases de données ? (o/n) n
Le nouveau rôle doit-il être autorisé à créer de nouveaux rôles ? (o/n) n
CREATE ROLE
$ createdb -O lemonldap-ng lemonldap-ng
CREATE DATABASE

Table creation

Create the table:

$ psql -h 127.0.0.1 -U lemonldap-ng -W lemonldap-ng
Mot de passe pour l'utilisateur lemonldap-ng :
[...]
lemonldap-ng=> create table sessions ( id char(32) not null primary key, a_session text );
NOTICE:  CREATE TABLE / PRIMARY KEY créera un index implicite « sessions_pkey » pour la table « sessions »
CREATE TABLE
lemonldap-ng=> q

LemonLDAP::NG configuration

Go to the Manager and go in General Parameters > Session Storage. Then change Apache::Session module to "Apache::Session::Postgres" and in Apache::Session parameters configure the following options: You can also set the session module in perl scripts:
globalStorage  => "Apache::Session::Postgres",
  globalStorageOptions => {
      DataSource       => "dbi:Pg:database=lemonldap-ng;host=127.0.0.1",
      UserName         => "lemonldap-ng",
      Password         => "<PASSWORD>",
      Commit           => 1,
  },