Commit a13e8870 authored by Xavier Guimard's avatar Xavier Guimard

New portal in progress (#595)

parent 31efc358
......@@ -111,18 +111,8 @@ sub handler {
my @path = grep { $_ =~ /^[\.\w]+/ } split /\//, $req->path();
$self->lmLog( "Start routing " . ( $path[0] // 'default route' ), 'debug' );
unless (@path) {
push @path, $self->defaultRoute;
# TODO: E-Tag, Expires,...
## NB: this is not HTTP compliant: host and protocol are required !
#my $url = '/' . $self->defaultRoute;
#return [
# 302,
# [ 'Content-Type' => 'text/plain', 'Location' => $url ],
# ['Document has moved here: $url']
if ( !@path and $self->defaultRoute ) {
@path = ( $self->defaultRoute );
return $self->followPath( $req, $self->routes->{ $req->method }, \@path );
##@class Lemonldap::NG::Portal::Main::Init
# Initialization part of Lemonldap::NG portal
# 2 methods:
# - init(): launch at startup. Load 'portal' section of lemonldap-ng.ini,
# initialize default route and launch reloadConf()
# - reloadConf(): (re)load configuration using localConf (ie 'portal' section
# of lemonldap-ng.ini) and underlying handler configuration
package Lemonldap::NG::Portal::Main::Init;
use strict;
......@@ -48,21 +54,19 @@ sub init {
return 0 unless ( $self->SUPER::init( { conf => $args } ) );
{ %{ HANDLER->confAcc->getLocalConf('portal') }, %$args } );
return $self->reloadConf($args);
sub checkConf {
my $self = shift;
return (
and $self->conf->{cfgNum} eq HANDLER->lmConf->{cfgNum}
? 1
: $self->reloadConf(@_)
# Handle default requests (other path may be declared in enabled plugins)
# Default routes must point to routines declared above
return $self->reloadConf($args);
sub reloadConf {
my ( $self, $args ) = @_;
my ( $self ) = @_;
my $conf = HANDLER->lmConf->{cfgNum};
##@class Lemonldap::NG::Portal::Main::Run
# Serve request part of Lemonldap::NG portal
# Methods:
# - handler(): verify that portal configuration is the same that the
# underlying handler configuration before launching
# Lemonldap::NG::Common::PSGI::Router::handler() (which parse
# routes)
package Lemonldap::NG::Portal::Main::Run;
use strict;
use Mouse;
our $VERSION = '2.0.0';
sub handler {
my($self,$req) = shift;
unless ( $self->conf->{cfgNum} and $self->conf->{cfgNum} eq HANDLER->lmConf->{cfgNum} ) {
bless $req, Lemonldap::NG::Portal::Main::Request;
return $self->SUPER::handler($req);
# TODO in run
# - mustRedirect
# - store AuthnLevel in session (setSessionInfo)
PE0:'User authenticated',
PE1:'Your connection has expired, you must authenticate once again',
PE2:'User and password fields must be filled',
PE3:'Wrong directory manager account or password',
PE4:'User not found in directory',
PE5:'Wrong credentials',
PE6:'Unable to connect to LDAP server',
PE7:'Abnormal error from LDAP server',
PE8:'Apache::Session module failed',
PE9:'Authentication required',
PE10:'Invalid certificate',
PE11:'Initialization of Lasso:Login or Lasso:Logout failed',
PE12:'Liberty-Alliance artefact resolution failed',
PE13:'Liberty-Alliance defederation failed',
PE14:'Liberty-Alliance query returned by IDP in assertion is empty',
PE15:'One of Liberty-Alliance soap calls failed',
PE16:'One of Liberty-Alliance single logout failed',
PE17:'No SAML artefact found, or auto-accepting SSO failed',
PE18:'Initializing, building or requesting SSO failed',
PE19:'Unable to store Liberty-Alliance session id',
PE20:'A Liberty-Alliance Soap End Point process failed',
PE21:'Your account is locked',
PE22:'Your password has expired',
PE23:'Certificate required',
PE25:'Password has been reset and now must be changed',
PE26:'Password may not be modified',
PE27:'Old password must also be supplied when setting a new password',
PE28:'Insufficient password quality',
PE29:'Password too short',
PE30:'Password too young',
PE31:'Password used too recently',
PE32:' authentications remaining, change your password!',
PE33:'%d days, %d hours, %d minutes and %d seconds before password expiration, change it!',
PE34:'Passwords mismatch',
PE35:'Password successfully changed',
PE36:'You have a new message',
PE37:'Bad URL',
PE38:'No scheme available',
PE39:'Bad old password',
PE40:'Bad username',
PE41:'Session opening not allowed',
PE42:'Confirmation required',
PE43:'Your mail address is mandatory',
PE44:'Confirmation key is invalid or too old',
PE45:'An error occurs when sending mail',
PE46:'A mail has been sent',
PE47:'You have been disconnected',
PE48:'Undefined SAML error',
PE49:'Unable to load SAML service',
PE50:'Problem when loading an identity provider',
PE51:'An error occured during SAML single sign on',
PE52:'SAML entity is not known',
PE53:'SAML message destination is not correct',
PE54:'SAML message conditions are not respected',
PE55:'Identity provider initiated single sign on is not authorized',
PE56:'An error occured during SAML single logout',
PE57:'Error in SAML message signature management',
PE58:'An error occured during SAML artifact use',
PE59:'Communication error with SAML sessions',
PE60:'Problem when loading a service provider',
PE61:'An error occured during SAML attributes exchange',
PE62:'This is an OpenID endpoint page',
PE63:'You try to use an OpenID identity which is not yours',
PE64:'A required attribute is not available',
PE65:'Federation forbidden by security policy',
PE66:'The confirmation mail was already sent',
PE67:'Password field must be filled',
PE68:'Access non granted on CAS service',
PE69:'Please provide your mail address',
PE70:'No matching user',
PE71:'Please provide your new password',
PE72:'A confirmation mail has been sent',
PE73:'Radius connection has failed',
PE74:'Old password is required',
PE75:'You came from an unaccredited IP address',
PE76:'You failed at typing the captcha',
PE77:'You have to type the captcha',
PE78:'Please enter your information',
PE79:'An information is missing',
PE80:'This address is already used',
PM2:'IP address',
PM3:'The following sessions have been closed',
PM4:'Other active sessions',
PM5:'Remove other sessions',
PM6:'authentications remaining, change your password!',
PM7:'%d days, %d hours, %d minutes and %d seconds before password expiration, change it!',
PM8:'Select your Identity Provider',
PM9:'Redirection to your Identity Provider',
PM10:'Remember my choice',
PM11:'Logout from service providers...',
PM12:'Redirection in progress...',
PM13:'Go back to service provider',
PM14:'The application you just logged out of has provided a link it would like you to follow',
PM15:'Logout from other applications...',
PM16:'Do you want to authenticate yourself on %s ?',
PM17:'Update Common Domain Cookie',
PM18:'Parameter %s requested for federation isn\'t available',
PM19:'Data usage policy is available at',
PM20:'Do you agree to provide the following parameters?',
PM21:'Error Message',
PM22:'Your last logins',
PM23:'Your last failed logins',
PM24:'The application %s would like to know:',
PM25:'Your identity',
PM26:'Your profile',
PM27:'Your email',
PM28:'Your address',
PM29:'Your phone number',
PM30:'Another information:',
PM31:'Do you want to logout?'
PE0:'Utilisateur authentifié',
PE1:'Votre session a expiré, vous devez vous réauthentifier',
PE2:'Identifiant ou mot de passe non renseigné',
PE3:'Compte ou mot de passe LDAP de l\'application incorrect',
PE4:'Utilisateur inexistant',
PE5:'Mot de passe ou identifiant incorrect',
PE6:'Connexion impossible au serveur LDAP',
PE7:'Erreur anormale du serveur LDAP',
PE8:'Erreur du module Apache::Session choisi',
PE9:'Veuillez vous authentifier',
PE10:'Certificat invalide',
PE11:'Échec de l\'initialisation de Lasso:Login ou Lasso:Logout',
PE12:'Échec de la résolution de l\'artefact Liberty Alliance',
PE13:'Échec de la défédération Liberty Alliance',
PE14:'La requête renvoyée par le fournisseur d\'identité Liberty Alliance est vide',
PE15:'Un des appels SOAP Liberty Alliance a échoué',
PE16:'Un des appels de déconnexion Liberty Alliance a échoué',
PE17:'Aucun artefact SAML trouvé, ou échec de l\'auto-acceptation SSO',
PE18:'Initialisation, construction ou requête SSO en échec',
PE19:'Impossible d\'enregistrer l\'identifiant de connexion Liberty Alliance',
PE20:'Un processus terminal Liberty Alliance a échoué',
PE21:'Votre compte est bloqué',
PE22:'Votre mot de passe a expiré',
PE23:'Certificat exigé',
PE25:'Le mot de passe a été réinitialisé et doit être changé',
PE26:'Modification du mot de passe non autorisée',
PE27:'Ancien mot de passe à fournir pour le changer',
PE28:'Qualité de mot de passe insuffisante',
PE29:'Mot de passe trop court',
PE30:'Mot de passe trop récent',
PE31:'Mot de passe utilisé trop récemment',
PE32:' authentifications restantes, changez votre mot de passe !',
PE33:'%d jours, %d heures, %d minutes et %d secondes avant expiration de votre mot de passe, pensez à le changer !',
PE34:'Les mots de passe ne correspondent pas',
PE35:'Le mot de passe a été changé',
PE36:'Vous avez un nouveau message',
PE37:'Mauvaise URL',
PE38:'Aucun schéma disponible',
PE39:'Ancien mot de passe invalide',
PE40:'Nom d\'utilisateur incorrect',
PE41:'Ouverture de session interdite',
PE42:'Confirmation demandée',
PE43:'L\'adresse mail est obligatoire ',
PE44:'La clé de confirmation est invalide ou trop ancienne',
PE45:'L\'envoi du mail a échoué',
PE46:'Un mail vous a été envoyé',
PE47:'Vous avez été déconnecté',
PE48:'Erreur SAML non définie',
PE49:'Impossible de charger le service SAML',
PE50:'Problème au chargement d\'un fournisseur d\'identité',
PE51:'Une erreur est survenue lors de l\'authentification SAML',
PE52:'Le partenaire SAML n\'est pas reconnu',
PE53:'La destination du message SAML est incorrecte',
PE54:'Les conditions du message SAML ne sont pas respectées',
PE55:'L\'authentification initiée par le fournisseur d\'identité n\'est pas autorisée',
PE56:'Une erreur est survenue lors de la déconnexion SAML',
PE57:'Erreur lors de la gestion de la signature du message SAML',
PE58:'Une erreur est survenue lors de l\'utilisation d\'un artefact SAML',
PE59:'Erreur de communication avec les sessions SAML',
PE60:'Problème au chargement d\'un fournisseur de service',
PE61:'Une erreur est survenue lors de l\'échange d\'attributs SAML',
PE62:'Ceci est une page destinée aux serveurs OpenID',
PE63:'Vous tentez d\'utiliser une identité OpenID qui ne vous appartient pas',
PE64:'Un attribut exigé n\'est pas disponible',
PE65:'Fédération interdite par la politique de sécurité',
PE66:'Le mail de confirmation a déjà été envoyé',
PE67:'Mot de passe non renseigné',
PE68:'Accès non autorisé au service CAS',
PE69:'Merci de saisir votre adresse mail',
PE70:'Pas d\'utilisateur correspondant',
PE71:'Merci de saisir votre nouveau mot de passe',
PE72:'Un mail de confirmation vous a été envoyé',
PE73:'La connexion au serveur Radius a échoué',
PE74:"L'ancien mot de passe est obligatoire",
PE75:'Vous venez d\'une adresse IP qui n\'est pas accréditée',
PE76:'Erreur dans la saisie du captcha',
PE77:'Vous devez saisir le captcha',
PE78:'Merci de saisir vos informations',
PE79:'Une information est manquante',
PE80:'Cette adresse est déjà utilisée',
PM2:'Adresse IP',
PM3:'Les sessions suivantes ont été fermées',
PM4:'Autres sessions ouvertes',
PM5:'Fermer les autres sessions',
PM6:'authentifications restantes, changez votre mot de passe !',
PM7:'%d jours, %d heures, %d minutes et %d secondes avant expiration de votre mot de passe, pensez à le changer !',
PM8:'Choisissez votre fournisseur d\'identité',
PM9:'Redirection vers votre fournisseur d\'identité',
PM10:'Se souvenir de mon choix',
PM11:'Déconnexion des services...',
PM12:'Redirection en cours...',
PM13:'Retourner sur le fournisseur de service',
PM14:'Le service duquel vous arrivez a fourni un lien que vous êtes invité à suivre',
PM15:'Déconnexion des autres applications...',
PM16:'Souhaitez-vous vous identifier sur le site %s ?',
PM17:'Mise à jour du cookie de domaine commun',
PM18:'Le paramètre %s exigé pour la fédération n\'est pas disponible',
PM19:'La politique d\'utilisation des données est disponible ici',
PM20:'Consentez-vous à communiquer les paramètres suivants ?',
PM21:'Message d\'erreur',
PM22:'Vos dernières connexions',
PM23:'Vos dernières connexions refusées',
PM24:'L\'application %s voudrait connaître :',
PM25:'Votre identité',
PM26:'Vos informations personnelles',
PM27:'Votre adresse électronique',
PM28:'Votre adresse',
PM29:'Votre numéro de téléphone',
PM30:'Une autre information :',
PM31:'Souhaitez-vous vous déconnecter ?'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment