--- loncom/lontrans.pm 2021/10/06 19:38:29 1.35 +++ loncom/lontrans.pm 2021/10/08 14:36:51 1.36 @@ -1,7 +1,7 @@ # The LearningOnline Network # URL translation for User Files # -# $Id: lontrans.pm,v 1.35 2021/10/06 19:38:29 raeburn Exp $ +# $Id: lontrans.pm,v 1.36 2021/10/08 14:36:51 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -70,10 +70,17 @@ sub handler { if (($vpnext && &Apache::lonnet::ip_match($remote_ip,$vpnext)) && ($r->uri !~ m{^/adm/(lti|launch)/})) { $redirect = $hostname; - if ($redirect eq $hdrhost) { + } + if ($r->uri eq '/adm/sso') { + if (&Apache::lonnet::alias_shibboleth($lonhost)) { undef($redirect); + } else { + $redirect = $hostname; } } + if ($redirect eq $hdrhost) { + undef($redirect); + } } elsif ($hdrhost eq $hostname) { $remote_ip = &Apache::lonnet::get_requestor_ip($r,REMOTE_NOLOOKUP,1); unless (($remote_ip eq '127.0.0.1') || ($remote_ip eq '::1') || @@ -86,13 +93,16 @@ sub handler { if (exists($iphost{$remote_ip})) { undef($redirect); } + } elsif ($r->uri eq '/adm/sso') { + unless (&Apache::lonnet::alias_shibboleth($lonhost)) { + undef($redirect); + } } } } if ($redirect) { my $uri = $r->uri; - if (($uri eq '/adm/sso') || ($uri eq '/adm/switchserver') || - ($uri =~ m{^/Shibboleth.sso/})) { + if (($uri eq '/adm/switchserver') || ($uri =~ m{^/Shibboleth.sso/})) { return DECLINED; } unless ($uri eq '/adm/migrateuser') {