--- loncom/auth/lonlogin.pm 2021/10/08 14:45:45 1.190 +++ loncom/auth/lonlogin.pm 2021/10/10 23:22:30 1.191 @@ -1,7 +1,7 @@ # The LearningOnline Network # Login Screen # -# $Id: lonlogin.pm,v 1.190 2021/10/08 14:45:45 raeburn Exp $ +# $Id: lonlogin.pm,v 1.191 2021/10/10 23:22:30 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -417,8 +417,6 @@ sub handler { } if ($env{'form.ltoken'}) { my %info = &Apache::lonnet::tmpget($env{'form.ltoken'}); - &Apache::lonnet::tmpdel($env{'form.ltoken'}); - delete($env{'form.ltoken'}); if ($info{'linkprot'}) { if (!$tokenextras) { $tokenextras = '&&&'; @@ -442,6 +440,10 @@ sub handler { if ($logtoken eq 'no_such_host') { &Apache::lonnet::logthis('No valid logtoken for log-in page -- unable to determine hostname for hostID: '.$lonhost.'. Check entry in hosts.tab'); } + if ($env{'form.ltoken'}) { + &Apache::lonnet::tmpdel($env{'form.ltoken'}); + delete($env{'form.ltoken'}); + } my $spares=''; my (@sparehosts,%spareservers); my $sparesref = &Apache::lonnet::this_host_spares($defdom); @@ -819,6 +821,13 @@ HEADER $querystring = &HTML::Entities::encode($querystring,"'"); $ssologin .= (($ssologin=~/\?/)?'&':'?') . $querystring; } + if ($env{'form.ltoken'} ne '') { + $querystring .= (($querystring eq '')?'':'&') . 'ltoken='. + &HTML::Entities::encode(&uri_escape($env{'form.ltoken'})); + } elsif ($env{'form.linkkey'}) { + $querystring .= (($querystring eq '')?'':'&') . 'linkkey='. + &HTML::Entities::encode(&uri_escape($env{'form.linkkey'})); + } my $ssohref; if ($samlssoimg ne '') { $ssohref = ''.$samlssoalt.''; @@ -849,6 +858,11 @@ $coursecatalog ENDSAML + } else { + if ($env{'form.ltoken'}) { + &Apache::lonnet::tmpdel($env{'form.ltoken'}); + delete($env{'form.ltoken'}); + } } $r->print(<