lemonldap-ng/modules/lemonldap-portal/lib/Lemonldap/Portal/LogoutDAC.pm
2007-02-27 10:55:32 +00:00

61 lines
1.4 KiB
Perl
Executable File

package Lemonldap::Portal::LogoutDAC;
use strict;
use warnings;
use Apache2::Const;
use Data::Dumper;
use CGI ':cgi-lib';
use Apache2::ServerRec();
use MIME::Base64;
our $VERSION = '3.1.0';
sub handler {
my $r = shift;
my $domain = $r->dir_config('Domain');
my $cookie = $r->dir_config('Cookie');
my $Portal = $r->dir_config('Portal');
my $PostLogoutURL = $r->dir_config('PostLogoutURL');
my $entete = $r->headers_in();
my $Cookies = $entete->{'Cookie'};
my $LogoutCookie = CGI::cookie(
-name => $cookie,
-value => '0',
-domain => ".".$domain,
-path => '/',
-expires => 'now'
);
my $test = $r->construct_url();
#ATTENTION : ne valide que les http et https
my $prot;
if ($test =~ /^https/){
$prot = "https://";
}else{
$prot = "http://"
}
my $url_portail;
if (defined($PostLogoutURL)){
$url_portail = $PostLogoutURL;
}else{
$url_portail = $prot.$r->headers_in->{Host};
}
my $url_portail_encode = encode_base64($url_portail,"");
$r->err_headers_out->add(Pragma => 'no-cache');
$r->headers_out->add(Location =>$Portal."?op=c&url=$url_portail_encode");
$r->err_headers_out->add(Connection => 'close');
$r->err_headers_out->add( 'Set-Cookie' => $LogoutCookie );
return REDIRECT ;
}
1;