
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