version 1.37, 2021/11/03 01:04:03
|
version 1.41, 2023/06/02 01:20:28
|
Line 40 sub handler {
|
Line 40 sub handler {
|
# FIXME line remove when mod_perl fixes BUG#4948 |
# FIXME line remove when mod_perl fixes BUG#4948 |
$r->notes->set('error-notes' => ''); |
$r->notes->set('error-notes' => ''); |
my $hdrhost = $r->headers_in->get('Host'); |
my $hdrhost = $r->headers_in->get('Host'); |
|
if (($r->uri eq '/adm/service/passback') || |
|
($r->uri eq '/adm/service/roster')) { |
|
return OK; |
|
} |
if ($r->uri=~m{^/raw/}) { |
if ($r->uri=~m{^/raw/}) { |
if ($hdrhost) { |
if ($hdrhost) { |
unless ($hdrhost =~ /^internal\-/) { |
unless ($hdrhost =~ /^internal\-/) { |
Line 57 sub handler {
|
Line 61 sub handler {
|
if ($alias) { |
if ($alias) { |
my $lonhost = $r->dir_config('lonHostID'); |
my $lonhost = $r->dir_config('lonHostID'); |
my $hostname = &Apache::lonnet::hostname($lonhost); |
my $hostname = &Apache::lonnet::hostname($lonhost); |
|
my $ssourl = '/adm/sso'; |
|
if ($r->dir_config('lonOtherAuthenUrl') ne '') { |
|
$ssourl = $r->dir_config('lonOtherAuthenUrl'); |
|
} |
if (($hdrhost eq $alias) || ($hdrhost eq $hostname)) { |
if (($hdrhost eq $alias) || ($hdrhost eq $hostname)) { |
my $proxyinfo = &Apache::lonnet::get_proxy_settings($r->dir_config('lonDefDomain')); |
my $proxyinfo = &Apache::lonnet::get_proxy_settings($r->dir_config('lonDefDomain')); |
my ($vpnint,$vpnext); |
my ($vpnint,$vpnext); |
Line 71 sub handler {
|
Line 79 sub handler {
|
($r->uri !~ m{^/adm/(lti|launch)/})) { |
($r->uri !~ m{^/adm/(lti|launch)/})) { |
$redirect = $hostname; |
$redirect = $hostname; |
} |
} |
if ($r->uri eq '/adm/sso') { |
if ($r->uri eq $ssourl) { |
if (&Apache::lonnet::alias_shibboleth($lonhost)) { |
if (&Apache::lonnet::alias_sso($lonhost)) { |
undef($redirect); |
undef($redirect); |
} else { |
} else { |
$redirect = $hostname; |
$redirect = $hostname; |
Line 93 sub handler {
|
Line 101 sub handler {
|
if (exists($iphost{$remote_ip})) { |
if (exists($iphost{$remote_ip})) { |
undef($redirect); |
undef($redirect); |
} |
} |
} elsif ($r->uri eq '/adm/sso') { |
} elsif ($r->uri eq $ssourl) { |
unless (&Apache::lonnet::alias_shibboleth($lonhost)) { |
unless (&Apache::lonnet::alias_sso($lonhost)) { |
undef($redirect); |
undef($redirect); |
} |
} |
} |
} |
Line 105 sub handler {
|
Line 113 sub handler {
|
if (($uri eq '/adm/switchserver') || ($uri =~ m{^/Shibboleth.sso/})) { |
if (($uri eq '/adm/switchserver') || ($uri =~ m{^/Shibboleth.sso/})) { |
return DECLINED; |
return DECLINED; |
} |
} |
unless (($uri eq '/adm/migrateuser') || ($uri eq '/adm/sso')) { |
unless (($uri eq '/adm/migrateuser') || ($uri eq $ssourl)) { |
my %user; |
my %user; |
my $handle = &Apache::lonnet::check_for_valid_session($r,undef,\%user); |
my $handle = &Apache::lonnet::check_for_valid_session($r,undef,\%user); |
if (($handle) && ($user{'name'} ne '') && ($user{'domain'} ne '')) { |
if (($handle) && ($user{'name'} ne '') && ($user{'domain'} ne '')) { |
Line 272 sub set_token {
|
Line 280 sub set_token {
|
my %link_info = &Apache::lonnet::tmpget($info{'ltoken'}); |
my %link_info = &Apache::lonnet::tmpget($info{'ltoken'}); |
if ($link_info{'linkprot'}) { |
if ($link_info{'linkprot'}) { |
$info{'linkprot'} = $link_info{'linkprot'}; |
$info{'linkprot'} = $link_info{'linkprot'}; |
|
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') { |
|
if ($link_info{$item} ne '') { |
|
$info{$item} = $link_info{$item}; |
|
} |
|
} |
} |
} |
&Apache::lonnet::tmpdel($info{'ltoken'});; |
&Apache::lonnet::tmpdel($info{'ltoken'}); |
delete($info{'ltoken'}); |
delete($info{'ltoken'}); |
} |
} |
unless ($info{'role'}) { |
unless ($info{'role'}) { |