lemonldap-ng/modules/lemonldap-handlers-cas/lib/Lemonldap/Handlers/LogoutCAS.pm
2007-04-02 08:30:39 +00:00

70 lines
1.9 KiB
Perl

package Lemonldap::Handlers::LogoutCAS;
use strict;
use warnings;
use Lemonldap::Config::Parameters;
use Apache2::Const qw(DONE FORBIDDEN OK SERVER_ERROR REDIRECT);
use Apache2::ServerUtil ();
use Apache2::Log();
use Apache2::ServerRec();
use CGI ':cgi-lib';
use CGI::Cookie;
my $html;
sub handler {
my $r = shift;
my $log = $r->log;
my $MyApplicationXmlFile = $r->dir_config('ConfigFile');
my $MyDomain = lc( $r->dir_config('Domain') );
my $Parameters =
Lemonldap::Config::Parameters->new( file => $MyApplicationXmlFile, );
my $Conf_Domain = $Parameters->getDomain($MyDomain);
my $Cookie_Name = $Conf_Domain->{Cookie};
my $page_html = $Conf_Domain->{LogoutCASPage};
##########################################################################
my $pathlemon = "/";
my $pathCookie = "/cas";
my $dotdomain = "." . $MyDomain;
$log->info( "Set-Cookie: -name => $Cookie_Name -value => -domain => "
. ".$dotdomain -path => $pathCookie" );
my $CASCookie = CGI::cookie(
-name => "CASTGC",
-value => 0,
-domain => $dotdomain,
-path => $pathCookie,
);
my $LemonCookie = CGI::cookie(
-name => $Cookie_Name,
-value => 0,
-domain => $dotdomain,
-path => $pathlemon,
);
##############################################
if ( !$html ) {
my $file;
open( $file, "<$page_html" );
local $/;
$/ = '';
$html = <$file>;
close $file;
}
$r->content_type('text/html');
# my $linecookie= "CASTGC=0;domain=$dotdomain;path=/cas/ ; $cookiename=0;
# $r->headers_out->{'Set-Cookie'}= [$LemonCookie,$CASCookie] ;
$r->headers_out->add( 'Set-Cookie' => $CASCookie );
$r->headers_out->add( 'Set-Cookie' => $LemonCookie );
$r->print;
$r->print($html);
return OK;
}
1;