diff --git a/t/300-controller_cookie_auth.t b/t/300-controller_cookie_auth.t index 4349ee637f..8d9ebfc796 100644 --- a/t/300-controller_cookie_auth.t +++ b/t/300-controller_cookie_auth.t @@ -42,5 +42,5 @@ TestUtils::test_command({ TestUtils::test_command({ cmd => './script/thruk_auth', stdin => '///____/thruk/cgi-bin/tac.cgi', - like => ['/^\/redirect\/thruk\/cgi\-bin\/login\.cgi\?thruk\/cgi\-bin\/tac\.cgi$/'], + like => ['/^\/redirect\/thruk\/cgi\-bin\/login\.cgi\?nocookie&thruk\/cgi\-bin\/tac\.cgi$/'], }); diff --git a/t/TestUtils.pm b/t/TestUtils.pm index 016787df38..d4389f6b56 100644 --- a/t/TestUtils.pm +++ b/t/TestUtils.pm @@ -972,9 +972,13 @@ sub _external_request { if($req->is_redirect and $req->{'_headers'}->{'location'} =~ m/\/thruk\/cgi\-bin\/login\.cgi\?(.*)$/mxo and defined $ENV{'THRUK_TEST_AUTH'}) { die("login failed: ".Dumper($req)) unless $retry; my $referer = uri_unescape($1); + $referer =~ s/^nocookie&//gmx; + $referer = '/'.$referer; my($user, $pass) = split(/:/mx, $ENV{'THRUK_TEST_AUTH'}, 2); - my $r = _external_request($req->{'_headers'}->{'location'}, undef, undef, $agent); - $r = _external_request($req->{'_headers'}->{'location'}, undef, { password => $pass, login => $user, submit => 'login', referer => '/'.$referer }, $agent, undef, 0); + my $login_page = $req->{'_headers'}->{'location'}; + my $r = _external_request($login_page, undef, undef, $agent); + $login_page =~ s/nocookie&//gmx; + $r = _external_request($login_page, undef, { password => $pass, login => $user, submit => 'login', referer => $referer }, $agent, undef, 0); $req = _external_request($r->{'_headers'}->{'location'}, $start_to, $post, $agent, undef, 0); } return $req; diff --git a/templates/login.tt b/templates/login.tt index 0c7163c987..b029106074 100644 --- a/templates/login.tt +++ b/templates/login.tt @@ -76,7 +76,7 @@ var val = window.location.search + window.location.hash; val = val.replace(/\/thruk\/#/, '/thruk/'); val = val.replace(/^\?/, ''); - val = val.replace(/^(logout|expired|invalid|problem|locked|setsession)&/, ''); + val = val.replace(/^(logout|expired|invalid|problem|locked|setsession|nocookie)&/, ''); val = val.replace(/^\/*/, '/'); if(val != '') { jQuery("INPUT[name='referer']").val(val);