#!/usr/bin/perl use strict ; use warnings ; use HTML::Template ; use Lemonldap::NG::Portal::AuthLA; # Local parameter to set the installation directory my $portal = Lemonldap::NG::Portal::AuthLA->new({ configStorage => { type => 'File' , dirName => '__CONFDIR__' , } , # Liberty Parameters laSp => { certificate => "__DIR__/ressources/lemonsp-key-public.pem" , metadata => "__DIR__/ressources/lemonsp-metadata.xml" , privkey => "__DIR__/ressources/lemonsp-key-private.pem" , secretkey => "__DIR__/ressources/lemonsp-key-private.pem" , } , laIdpsFile => "__DIR__/idps.xml" , laDebug => 0 , laLdapLoginAttribute => "uid" , # Liberty Storage Options are now generic CGI::Session options laStorage => "File", laStorageOptions => { Directory => "__DIR__/var/assertion" , } , # Parameters that permit to access lemonldap::NG::Handler local cache localStorage => 'Cache::FileCache' , localStorageOptions => {} , }); if( $portal->process() ) { print $portal->header('text/html; charset=utf8'); my $template = HTML::Template->new( filename => "__DIR__/tpl/menu.tpl"); my @sites = (); foreach ($portal->getProtectedSites) { my %row_data ; $row_data{SITE_NAME} = $_ ; push (@sites, \%row_data) ; } @sites = sort {$a cmp $b} @sites ; $template->param( AUTH_SITES => \@sites ); print $template->output; } else { # Retrieve IDP list. my @idps = () ; foreach ($portal->getIdpIDs) { my %row_data ; $row_data{IDPNAME} = $_ ; push (@idps, \%row_data) ; } @idps = sort {$a cmp $b} @idps ; # Print template print $portal->header ; my $template = HTML::Template->new( filename => "__DIR__/tpl/auth.tpl" ) ; $template->param( AUTH_ERROR => $portal->error ) ; $template->param( AUTH_URL => $portal->param('url') ) ; $template->param( AUTH_IDPS => \@idps ) ; print $template->output ; }