Hello,
I have setup otrs 3.0.5 with single sign on based on apache and mod_cas.
As this could be a problem when having different authentication scenarios
for agents and customers, I have tried to setup a CAS auth module by
copy/pasting code snippets here and there (I don't know perl...). I think
I'm almost there but I have an annoying bug I'm asking help for now.
I have created a CAS.pm file in /opt/otrs/Kernel/System/CustomerAuth
====
use CGI;
use AuthCAS;
use CGI;
use CGI::Carp qw( fatalsToBrowser );
...
sub Auth {
my ( $Self, %Param ) = @_;
my $cas = new AuthCAS(casUrl => 'https://sso.paris.iufm.fr/cas');
my $app_url = 'http://support.paris.iufm.fr/otrs/customer.pl';
unless ($ENV{QUERY_STRING} =~ /ticket=/) {
###
### Redirect the User for login at CAS
###
my $login_url = $cas->getServerLoginURL($app_url);
printf "Location: $login_url\n\n";
exit 0;
}
$ENV{QUERY_STRING} =~ /ticket=([^&]+)/; my $ST = $1;
my $User = $cas->validateST($app_url, $ST);
# return user
return $User;
}
============
The problem is with the line "unless ($ENV{QUERY_STRING} =~ /ticket=/) {".
It seems the $ENV{QUERY_STRING} is empty (not tested but I end in an
infinite loop, due to falling in this condition evrytime)
Would somebody have an idea about how to fix this check ?
Regards,
--
Mikael Kermorgant
---------------------------------------------------------------------
OTRS mailing list: otrs - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/otrs
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs