Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.1434 and 1.1437

version 1.1434, 2020/12/18 15:23:03 version 1.1437, 2021/01/05 04:23:46
Line 2757  sub get_domain_defaults { Line 2757  sub get_domain_defaults {
         }          }
     }      }
     if (ref($domconfig{'wafproxy'}) eq 'HASH') {      if (ref($domconfig{'wafproxy'}) eq 'HASH') {
         foreach my $item ('ipheader','trusted','exempt') {          foreach my $item ('ipheader','trusted','vpnint','vpnext') {
             if ($domconfig{'wafproxy'}{$item}) {              if ($domconfig{'wafproxy'}{$item}) {
                 $domdefaults{'waf_'.$item} = $domconfig{'wafproxy'}{$item};                  $domdefaults{'waf_'.$item} = $domconfig{'wafproxy'}{$item};
             }              }
Line 8082  sub allowed { Line 8082  sub allowed {
   
     if (defined($env{'allowed.'.$priv})) { return $env{'allowed.'.$priv}; }      if (defined($env{'allowed.'.$priv})) { return $env{'allowed.'.$priv}; }
 # Free bre access to adm and meta resources  # Free bre access to adm and meta resources
     if (((($uri=~/^adm\//) && ($uri !~ m{/(?:smppg|bulletinboard|ext\.tool)$}))       if (((($uri=~/^adm\//) && ($uri !~ m{/(?:smppg|bulletinboard|viewclasslist|aboutme|ext\.tool)$})) 
  || (($uri=~/\.meta$/) && ($uri!~m|^uploaded/|) ))    || (($uri=~/\.meta$/) && ($uri!~m|^uploaded/|) )) 
  && ($priv eq 'bre')) {   && ($priv eq 'bre')) {
  return 'F';   return 'F';
Line 10332  sub modifyuserauth { Line 10332  sub modifyuserauth {
     &log($udom,,$uname,$uhome,      &log($udom,,$uname,$uhome,
         'Authentication changed by '.$env{'user.domain'}.', '.          'Authentication changed by '.$env{'user.domain'}.', '.
                                      $env{'user.name'}.', '.$umode.                                       $env{'user.name'}.', '.$umode.
          '(Remote '.$ENV{'REMOTE_ADDR'}.'): '.$reply);           '(Remote '.$ip.'): '.$reply);
     unless ($reply eq 'ok') {      unless ($reply eq 'ok') {
         &logthis('Authentication mode error: '.$reply);          &logthis('Authentication mode error: '.$reply);
  return 'error: '.$reply;   return 'error: '.$reply;
Line 14288  sub get_requestor_ip { Line 14288  sub get_requestor_ip {
     my $dom_in_use = $Apache::lonnet::perlvar{'lonDefDomain'};      my $dom_in_use = $Apache::lonnet::perlvar{'lonDefDomain'};
     my $proxyinfo = &get_proxy_settings($dom_in_use);      my $proxyinfo = &get_proxy_settings($dom_in_use);
     if ((ref($proxyinfo) eq 'HASH') && ($from_ip)) {      if ((ref($proxyinfo) eq 'HASH') && ($from_ip)) {
         if ($proxyinfo->{'exempt'}) {          if ($proxyinfo->{'vpnint'}) {
             if (&ip_match($from_ip,$proxyinfo->{'exempt'})) {              if (&ip_match($from_ip,$proxyinfo->{'vpnint'})) {
                 return $from_ip;                  return $from_ip;
             }              }
         }          }
Line 14309  sub get_requestor_ip { Line 14309  sub get_requestor_ip {
                     $xfor = $ENV{'HTTP_X_FORWARDED_FOR'};                      $xfor = $ENV{'HTTP_X_FORWARDED_FOR'};
                 }                  }
                 if (($ip eq '') && ($xfor ne '')) {                  if (($ip eq '') && ($xfor ne '')) {
                     my @ips = reverse(split(/\s*,\s*/,$xfor));  
                     foreach my $poss_ip (reverse(split(/\s*,\s*/,$xfor))) {                      foreach my $poss_ip (reverse(split(/\s*,\s*/,$xfor))) {
                         unless (&ip_match($poss_ip,$proxyinfo->{'trusted'})) {                          unless (&ip_match($poss_ip,$proxyinfo->{'trusted'})) {
                             $ip = $poss_ip;                              $ip = $poss_ip;
                               last;
                         }                          }
                     }                      }
                 }                  }
Line 14331  sub get_proxy_settings { Line 14331  sub get_proxy_settings {
     my $proxyinfo = {      my $proxyinfo = {
                        ipheader => $domdefaults{'waf_ipheader'},                         ipheader => $domdefaults{'waf_ipheader'},
                        trusted  => $domdefaults{'waf_trusted'},                         trusted  => $domdefaults{'waf_trusted'},
                        exempt   => $domdefaults{'waf_exempt'},                         vpnint   => $domdefaults{'waf_vpnint'},
                          vpnext   => $domdefaults{'waf_vpnext'};
                     };                      };
     return $proxyinfo;      return $proxyinfo;
 }  }
Line 14356  sub get_proxy_alias { Line 14357  sub get_proxy_alias {
         if ($dom ne '') {          if ($dom ne '') {
             my $cachetime = 60*60*24;              my $cachetime = 60*60*24;
             my %domconfig =              my %domconfig =
                 &Apache::lonnet::get_dom('configuration',['proxy'],$dom);                  &Apache::lonnet::get_dom('configuration',['wafproxy'],$dom);
             my $alias;              my $alias;
             if (ref($domconfig{'proxy'}) eq 'HASH') {              if (ref($domconfig{'wafproxy'}) eq 'HASH') {
                 if (ref($domconfig{'proxy'}{'alias'}) eq 'HASH') {                  if (ref($domconfig{'wafproxy'}{'alias'}) eq 'HASH') {
                     $alias = $domconfig{'proxy'}{'alias'}{$lonhost};                      $alias = $domconfig{'wafproxy'}{'alias'}{$lonhost};
                 }                  }
             }              }
             return &do_cache_new('proxyalias',$lonhost,$alias,$cachetime);              return &do_cache_new('proxyalias',$lonhost,$alias,$cachetime);

Removed from v.1.1434  
changed lines
  Added in v.1.1437


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>