Lemonldap-Handlers-CAS
view release on metacpan or search on metacpan
lib/Lemonldap/Handlers/LoginCASLDAPFake.pm view on Meta::CPAN
'departement',
'grade',
'fonction',
);
for( @T ) {
$session{"$_"} = $entry->get_value("$_") ;
}
$self->{infosession} = \%session;
}
sub handler {
my $r = shift;
my $Stack_User;
$log = $r->log;
### 1 tester le TGT cookie
my $entete2 = $r->headers_in();
#Recuperation du Cookie
my $idx_tmp = $entete2->{'Cookie'};
my $local_cookie = "CASTGC";
my @tab = split /;/, $idx_tmp;
my $cookie;
my $idrecup;
my @base;
foreach (@tab) {
if (/$local_cookie=([^; ]+)/) {
$cookie = $_;
}
}
if ($cookie) {
($idrecup) = $cookie =~ /TGT-(.+)/;
}
if ( $Stack_User->{'AlreadyCreated'} ) {
undef $Stack_User->{'error'};
}
else {
$log = $r->log;
$MyApplicationXmlFile = $r->dir_config('ConfigFile');
$MyDomain = lc( $r->dir_config('Domain') );
$LoginPage = $r->dir_config('LoginPage');
$Major = $r->dir_config('Organization');
if ( !defined($Major) ) {
$Major = "authz_headers";
}
$Parameters =
Lemonldap::Config::Parameters->new( file => $MyApplicationXmlFile, );
$Conf_Domain = $Parameters->getDomain($MyDomain);
$Login_Url = $Conf_Domain->{Portal};
$Cookie_Name = $Conf_Domain->{Cookie};
$page_html = $Conf_Domain->{LoginCASPage};
################ enlevver ca ################
##############################################
if ( !$html ) {
my $file;
open( $file, "<$page_html" );
local $/;
$/ = '';
$html = <$file>;
close $file;
}
$Ldap_Server = $Conf_Domain->{ldap_server};
$Ldap_Branch_People = $Conf_Domain->{ldap_branch_people};
$Ldap_Dn_Manager = $Conf_Domain->{DnManager};
$Ldap_Pass_Manager = $Conf_Domain->{passwordManager};
$Ldap_Port = $Conf_Domain->{ldap_port};
$Ldap_Search_Bases = $Ldap_Branch_People;
if ( defined( $r->dir_config('LdapSearchBases') ) ) {
$Ldap_Search_Bases =
$r->dir_config('LdapSearchBases') . ":" . $Ldap_Search_Bases;
}
@base = split( /\s*:\s*/, $Ldap_Search_Bases );
$MemcachedServer =
$Parameters->formateLineHash(
$Parameters->findParagraph( 'session', 'memcached' )
->{SessionParams} );
$CookieName = $Conf_Domain->{Cookie};
my $_username;
$line_session = $Conf_Domain->{DefinitionSession};
$Stack_User = Lemonldap::Portal::Standard->new(
'msg' => $Messages,
'setSessionInfo' => \&My_Session,
);
$Stack_User->{'AlreadyCreated'} = "true";
$Stack_User->{line_session} = $line_session;
}
# compatibilité encore meilleure avec lemonldap
if (!$idrecup) {
my $lemon_cookie = $CookieName;
foreach (@tab) {
if (/$lemon_cookie=([^; ]+)/) {
$cookie = $_;
}
}
if ($cookie) {
($idrecup) = ~ /=(.+)/;
}
}
if ($idrecup) { ## test itupon memcached
my %_it;
tie %_it, 'Apache::Session::Memorycached', $idrecup, $MemcachedServer;
if ( $_it{username} ) { # il n existe pas :
$_username = $_it{username};
}
untie %_it;
}
my $UrlCode;
my $UrlDecode;
my $Erreur;
( run in 4.069 seconds using v1.01-cache-2.11-cpan-5e09290becf )