--- loncom/auth/lonacc.pm 2018/11/24 16:19:04 1.171 +++ loncom/auth/lonacc.pm 2018/12/29 23:24:52 1.174 @@ -1,7 +1,7 @@ # The LearningOnline Network # Cookie Based Access Handler # -# $Id: lonacc.pm,v 1.171 2018/11/24 16:19:04 raeburn Exp $ +# $Id: lonacc.pm,v 1.174 2018/12/29 23:24:52 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -363,6 +363,14 @@ sub sso_login { # login but immediately go to switch server to find us a new # machine &Apache::lonauth::success($r,$user,$domain,$home,'noredirect'); + foreach my $item (keys(%form)) { + $env{'form.'.$item} = $form{$item}; + } + unless ($form{'symb'}) { + unless (($r->uri eq '/adm/roles') || ($r->uri eq '/adm/sso')) { + $env{'form.origurl'} = $r->uri; + } + } $env{'request.sso.login'} = 1; if (defined($r->dir_config("lonSSOReloginServer"))) { $env{'request.sso.reloginserver'} = @@ -509,7 +517,7 @@ sub handler { my $preserved; foreach my $pair (split(/&/,$query)) { my ($name, $value) = split(/=/,$pair); - unless ($name eq 'symb') { + unless (($name eq 'symb') || ($name eq 'usehttp')) { $preserved .= $pair.'&'; } if (($env{'request.course.id'}) && ($name eq 'folderpath')) { @@ -550,6 +558,7 @@ sub handler { my $lonhost = &Apache::lonnet::host_from_dns($hostname); if ($lonhost) { my $actual = &Apache::lonnet::absolute_url($hostname); + my $exphostname = &Apache::lonnet::hostname($lonhost); my $expected = $Apache::lonnet::protocol{$lonhost}.'://'.$hostname; unless ($actual eq $expected) { $env{'request.use_absolute'} = $expected;