108 lines
3.3 KiB
Perl
Executable File
108 lines
3.3 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
use Lemonldap::Portal::Standard;
|
|
use CGI ':cgi-lib';
|
|
use Template;
|
|
use Net::LDAP;
|
|
use MIME::Base64;
|
|
use Apache::Session::Memorycached;
|
|
use CGI::Carp 'fatalsToBrowser';
|
|
use Data::Dumper;
|
|
use ReverseProxyConfig; #
|
|
my $message = '';
|
|
|
|
#my %param;
|
|
my %params = Vars;
|
|
my $ligne = Dumper( \%params );
|
|
print STDERR "ericgerman $ligne\n";
|
|
my $stack_user = Lemonldap::Portal::Standard->new();
|
|
my $urlc;
|
|
my $urldc;
|
|
|
|
$retour = $stack_user->process(
|
|
param => \%params,
|
|
server => $ReverseProxyConfig::ldap_serveur,
|
|
port => $ReverseProxyConfig::ldap_port,
|
|
DnManager => $ReverseProxyConfig::ldap_admin_dn,
|
|
passwordManager => $ReverseProxyConfig::ldap_admin_pd,
|
|
branch => $ReverseProxyConfig::ldap_branch_people
|
|
);
|
|
|
|
if ($retour) {
|
|
$message = $retour->message;
|
|
$erreur = $retour->error;
|
|
print STDERR "DEBUG $erreur - \n";
|
|
|
|
}
|
|
if ($erreur) {
|
|
my $ident = $retour->user;
|
|
### il n y rien de passee , afficher la grille
|
|
##------------------------------------------------------------------------------
|
|
## Génération du HTML de la page de formulaire
|
|
##------------------------------------------------------------------------------
|
|
my $data = {
|
|
'urlc' => $urlc,
|
|
'urldc' => $urldc,
|
|
'message' => $message,
|
|
'identifiant' => $ident,
|
|
};
|
|
|
|
my $template = Template->new($ReverseProxyConfig::template_config);
|
|
|
|
print CGI::header();
|
|
|
|
$template->process( 'login.thtml', $data ) or die( $template->error() );
|
|
|
|
##==============================================================================
|
|
## Fin du fichier
|
|
##==============================================================================
|
|
exit;
|
|
}
|
|
##==============================================================================## Ici tout est ok il faut creer le hash sur la session
|
|
##==============================================================================
|
|
my $monhash = $retour->infoSession;
|
|
|
|
my %session;
|
|
tie %session, 'Apache::Session::Memorycached', undef,
|
|
{
|
|
servers => $ReverseProxyConfig::cache_servers,
|
|
local => $ReverseProxyConfig::cache_local,
|
|
};
|
|
|
|
foreach ( keys %{$monhash} ) {
|
|
$session{$_} = $monhash->{$_} if $monhash->{$_};
|
|
}
|
|
|
|
my $session_id = $session{_session_id};
|
|
my $urldc;
|
|
my $urldc = $retour->getRedirection;
|
|
untie(%session);
|
|
|
|
##---------------------------------------------------------------------------
|
|
## Création du cookie
|
|
##---------------------------------------------------------------------------
|
|
my $cookie = CGI::cookie(
|
|
-name => $ReverseProxyConfig::cookie_name,
|
|
-value => $session_id,
|
|
-domain => $ReverseProxyConfig::cookie_domain,
|
|
-path => $ReverseProxyConfig::cookie_path,
|
|
);
|
|
|
|
##---------------------------------------------------------------------------
|
|
## Génération du HTML par le template
|
|
##---------------------------------------------------------------------------
|
|
$urldc = $ReverseProxyConfig::applications_list_URL
|
|
if ( $urldc eq '' );
|
|
|
|
my $data = {
|
|
urldc => $urldc,
|
|
message => 'Session ' . $session_id . $cookie,
|
|
};
|
|
|
|
my $template = Template->new($ReverseProxyConfig::template_config);
|
|
|
|
print CGI::header( -Refresh => '1; URL=' . $urldc, -cookie => $cookie );
|
|
$template->process( 'redirect.thtml', $data ) or die( $template->error() );
|
|
|
|
exit(0);
|
|
|