2006-12-18 12:32:33 +01:00
|
|
|
|
#!/usr/bin/perl
|
|
|
|
|
use Lemonldap::Portal::Standard;
|
|
|
|
|
use Lemonldap::Config::Parameters;
|
|
|
|
|
use CGI ':cgi-lib';
|
|
|
|
|
use Template;
|
|
|
|
|
use Net::LDAP;
|
|
|
|
|
use MIME::Base64;
|
|
|
|
|
use Apache::Session::Memorycached;
|
|
|
|
|
use CGI::Carp 'fatalsToBrowser';
|
|
|
|
|
use Data::Dumper;
|
2007-02-27 11:55:32 +01:00
|
|
|
|
#use ReverseProxyConfig; #
|
2006-12-18 12:32:33 +01:00
|
|
|
|
our $template_config;
|
|
|
|
|
our $login;
|
|
|
|
|
our $applications_list_url;
|
|
|
|
|
our $path;
|
|
|
|
|
our $cookie_name;
|
|
|
|
|
our $domain;
|
|
|
|
|
our $ldap_server;
|
|
|
|
|
our $ldap_port;
|
|
|
|
|
our $ldap_branch_people;
|
2007-02-27 11:55:32 +01:00
|
|
|
|
our $pass ;
|
2006-12-18 12:32:33 +01:00
|
|
|
|
our $session;
|
|
|
|
|
my $message = '';
|
|
|
|
|
#my %param;
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my %params =Vars;
|
|
|
|
|
my $conf= Lemonldap::Config::Parameters->new (
|
|
|
|
|
file => "/opt/apache/portail/application_new.xml" ,
|
|
|
|
|
cache => 'CONF' );
|
2006-12-18 12:32:33 +01:00
|
|
|
|
print STDERR "je passe ici $session\n";
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $config= $conf->getDomain('appli.cp') ;
|
2006-12-18 12:32:33 +01:00
|
|
|
|
print STDERR "je passe ici $session\n";
|
2007-02-27 11:55:32 +01:00
|
|
|
|
$template_config=$config->{templates_options};
|
|
|
|
|
my $tempopt= 'templates_dir';
|
|
|
|
|
my $valeur= $config->{$tempopt};
|
|
|
|
|
my $templates_opt=$conf->formateLineHash($template_config,$tempopt,$valeur);
|
|
|
|
|
$template_config= $templates_opt;
|
2006-12-18 12:32:33 +01:00
|
|
|
|
$applications_list_url = $config->{menu};
|
2007-02-27 11:55:32 +01:00
|
|
|
|
$login= $config->{login};
|
|
|
|
|
$cookie_name= $config->{cookie};
|
|
|
|
|
$domain= ".".$config->{name};
|
|
|
|
|
$path= $config->{path};
|
|
|
|
|
$ldap_server= $config->{ldap_server};
|
|
|
|
|
$ldap_port= $config->{ldap_port};
|
|
|
|
|
$ldap_branch_people=$config->{ldap_branch_people};
|
|
|
|
|
$dnmanager= $config->{DnManager} ;
|
|
|
|
|
$pass = $config->{passwordManager};
|
|
|
|
|
my $sessionrr= $conf->findParagraph('session','memcached');
|
|
|
|
|
$session =$sessionrr->{servers} ;
|
|
|
|
|
|
|
|
|
|
my $stack_user= Lemonldap::Portal::Standard->new();
|
2006-12-18 12:32:33 +01:00
|
|
|
|
my $urlc;
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $urldc;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$retour=$stack_user->process(param => \%params,
|
|
|
|
|
server => $ldap_server,
|
|
|
|
|
port => $ldap_port,
|
|
|
|
|
DnManager => $dnmanager,
|
|
|
|
|
passwordManager => $pass,
|
|
|
|
|
branch => $ldap_branch_people
|
|
|
|
|
);
|
|
|
|
|
if ($retour) {
|
|
|
|
|
$message=$retour->message;
|
|
|
|
|
$erreur=$retour->error;
|
|
|
|
|
}
|
2006-12-18 12:32:33 +01:00
|
|
|
|
if ($erreur) {
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $ident = $retour->user;
|
|
|
|
|
### il n y rien de passee , afficher la grille
|
2006-12-18 12:32:33 +01:00
|
|
|
|
##------------------------------------------------------------------------------
|
|
|
|
|
## G<>n<EFBFBD>ration du HTML de la page de formulaire
|
|
|
|
|
##------------------------------------------------------------------------------
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $data = {
|
|
|
|
|
'urlc' => $urlc,
|
|
|
|
|
'urldc' => $urldc,
|
|
|
|
|
'message' => $message,
|
|
|
|
|
'identifiant' => $ident,
|
|
|
|
|
};
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $template=Template->new( $template_config );
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
2007-02-27 11:55:32 +01:00
|
|
|
|
print CGI::header();
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
2007-02-27 11:55:32 +01:00
|
|
|
|
$template->process( 'login.thtml', $data ) or die($template->error());
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
|
|
|
|
##==============================================================================
|
|
|
|
|
## Fin du fichier
|
|
|
|
|
##==============================================================================
|
2007-02-27 11:55:32 +01:00
|
|
|
|
exit;
|
|
|
|
|
}
|
2006-12-18 12:32:33 +01:00
|
|
|
|
##==============================================================================## Ici tout est ok il faut creer le hash sur la session
|
|
|
|
|
##==============================================================================
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $monhash= $retour->infoSession;
|
|
|
|
|
my $fg = eval $session;
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my %session;
|
|
|
|
|
tie %session, 'Apache::Session::Memorycached', undef,
|
|
|
|
|
{
|
|
|
|
|
'servers' => $fg
|
|
|
|
|
};
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
2007-02-27 11:55:32 +01:00
|
|
|
|
foreach (keys %{$monhash}) {
|
|
|
|
|
$session{$_}=$monhash->{$_} if $monhash->{$_} ;
|
|
|
|
|
}
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
|
|
|
|
my $session_id = $session{_session_id};
|
|
|
|
|
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $urldc ;
|
|
|
|
|
my $urldc=$retour->getRedirection ;
|
|
|
|
|
untie( %session );
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|
|
|
|
|
##---------------------------------------------------------------------------
|
|
|
|
|
## Cr<43>ation du cookie
|
|
|
|
|
##---------------------------------------------------------------------------
|
2007-02-27 11:55:32 +01:00
|
|
|
|
my $cookie = CGI::cookie(
|
|
|
|
|
-name => $cookie_name,
|
|
|
|
|
-value => $session_id,
|
|
|
|
|
-domain => $domain,
|
|
|
|
|
-path => $path,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
print STDERR "ericgerman : session $session_id\n";
|
|
|
|
|
##---------------------------------------------------------------------------
|
|
|
|
|
## G<>n<EFBFBD>ration du HTML par le template
|
|
|
|
|
##---------------------------------------------------------------------------
|
|
|
|
|
$urldc = $applications_list_url
|
|
|
|
|
if( $urldc eq '' );
|
|
|
|
|
|
|
|
|
|
my $data = {
|
|
|
|
|
urldc => $urldc,
|
|
|
|
|
message => 'Session '.$session_id.$cookie ,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
my $template=Template->new( $template_config );
|
|
|
|
|
|
|
|
|
|
print CGI::header( -Refresh=>'1; URL='.$urldc, -cookie=>$cookie );
|
|
|
|
|
$template->process( 'redirect.thtml', $data ) or die($template->error());
|
|
|
|
|
|
|
|
|
|
exit( 0 );
|
|
|
|
|
|
2006-12-18 12:32:33 +01:00
|
|
|
|
|