Diff for /loncom/auth/lonauth.pm between versions 1.121.2.8 and 1.121.2.14

version 1.121.2.8, 2014/01/05 11:38:43 version 1.121.2.14, 2016/08/11 09:24:13
Line 103  sub success { Line 103  sub success {
         if ($destsymb =~ /___/) {          if ($destsymb =~ /___/) {
             # FIXME Need to deal with encrypted symbs and urls as needed.              # FIXME Need to deal with encrypted symbs and urls as needed.
             my ($map,$resid,$desturl)=split(/___/,$destsymb);              my ($map,$resid,$desturl)=split(/___/,$destsymb);
             unless ($desturl=~/^(adm|editupload|public)/) {              $desturl = &Apache::lonnet::clutter($desturl);
                 $desturl = &Apache::lonnet::clutter($desturl);  
             }  
             $desturl = &HTML::Entities::encode($desturl,'"<>&');              $desturl = &HTML::Entities::encode($desturl,'"<>&');
             $destsymb = &HTML::Entities::encode($destsymb,'"<>&');              $destsymb = &HTML::Entities::encode($destsymb,'"<>&');
             $destination .= 'destinationurl='.$desturl.              $destination .= 'destinationurl='.$desturl.
Line 165  $maincall Line 163  $maincall
 $continuelink  $continuelink
 $end_page  $end_page
 ENDSUCCESS  ENDSUCCESS
       return;
 }  }
   
 # --------------------------------------------------------------- Failed login!  # --------------------------------------------------------------- Failed login!
Line 206  sub failed { Line 205  sub failed {
     my $end_page = &Apache::loncommon::end_page();      my $end_page = &Apache::loncommon::end_page();
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
       my @actions =
            (&mt('Please [_1]log in again[_2].','<a href="'.$retry.'">','</a>'));
     my $loginhelp = &loginhelpdisplay($udom);      my $loginhelp = &loginhelpdisplay($udom);
     if ($loginhelp) {      if ($loginhelp) {
         $loginhelp = '<p><a href="'.$loginhelp.'">'.&mt('Login problems?').'</a></p>';          push(@actions, '<a href="'.$loginhelp.'">'.&mt('Login problems?').'</a>');
     }      }
       #FIXME: link to helpdesk might be added here
   
     $r->print(      $r->print(
        $start_page         $start_page
       .'<h1>'.&mt('Sorry ...').'</h1>'        .'<h2>'.&mt('Sorry ...').'</h2>'
       .'<p class="LC_warning">'.&mt($message).'</p>'        .&Apache::lonhtmlcommon::confirm_success(&mt($message),1).'<br /><br />'
       .'<p>'.&mt('Please [_1]log in again[_2].','<a href="'.$retry.'">','</a>')        .&Apache::lonhtmlcommon::actionbox(\@actions)
       .'</p>'  
       .$loginhelp  
       .$end_page        .$end_page
     );      );
  }   }
Line 317  sub handler { Line 317  sub handler {
     my $tmpinfo=Apache::lonnet::reply('tmpget:'.$form{'logtoken'},      my $tmpinfo=Apache::lonnet::reply('tmpget:'.$form{'logtoken'},
                                       $form{'serverid'});                                        $form{'serverid'});
   
     my %sessiondata;  
     if ($form{'iptoken'}) {  
         %sessiondata = &Apache::lonnet::tmpget($form{'iptoken'});  
         my $delete = &Apache::lonnet::tmpdel($form{'token'});  
     }  
   
     if (($tmpinfo=~/^error/) || ($tmpinfo eq 'con_lost') ||       if (($tmpinfo=~/^error/) || ($tmpinfo eq 'con_lost') || 
         ($tmpinfo eq 'no_such_host')) {          ($tmpinfo eq 'no_such_host')) {
  &failed($r,'Information needed to verify your login information is missing, inaccessible or expired.',\%form);   &failed($r,'Information needed to verify your login information is missing, inaccessible or expired.',\%form);
Line 342  sub handler { Line 336  sub handler {
         return OK;          return OK;
     }      }
   
     my ($key,$firsturl,$rolestr,$symbstr)=split(/&/,$tmpinfo);      my ($key,$firsturl,$rolestr,$symbstr,$iptokenstr)=split(/&/,$tmpinfo);
     if ($rolestr) {      if ($rolestr) {
         $rolestr = &unescape($rolestr);          $rolestr = &unescape($rolestr);
     }      }
     if ($symbstr) {      if ($symbstr) {
         $symbstr= &unescape($symbstr);          $symbstr= &unescape($symbstr);
     }      }
       if ($iptokenstr) {
           $iptokenstr = &unescape($iptokenstr);
       }
     if ($rolestr =~ /^role=/) {      if ($rolestr =~ /^role=/) {
         (undef,$form{'role'}) = split('=',$rolestr);          (undef,$form{'role'}) = split('=',$rolestr);
     }      }
     if ($symbstr =~ /^symb=/) {       if ($symbstr =~ /^symb=/) { 
         (undef,$form{'symb'}) = split('=',$symbstr);          (undef,$form{'symb'}) = split('=',$symbstr);
     }      }
       if ($iptokenstr =~ /^iptoken=/) {
     my $keybin=pack("H16",$key);          (undef,$form{'iptoken'}) = split('=',$iptokenstr);
   
     my $cipher;  
     if ($Crypt::DES::VERSION>=2.03) {  
  $cipher=new Crypt::DES $keybin;  
     }  
     else {  
  $cipher=new DES $keybin;  
     }      }
     my $upass='';  
     for (my $i=0;$i<=2;$i++) {  
  my $chunk=  
     $cipher->decrypt(unpack("a8",pack("H16",substr($form{'upass'.$i},0,16))));  
   
  $chunk.=      my $upass = &Apache::loncommon::des_decrypt($key,$form{'upass0'});
     $cipher->decrypt(unpack("a8",pack("H16",substr($form{'upass'.$i},16,16))));  
   
  $chunk=substr($chunk,1,ord(substr($chunk,0,1)));  
  $upass.=$chunk;  
     }  
   
 # ---------------------------------------------------------------- Authenticate  # ---------------------------------------------------------------- Authenticate
   
Line 439  sub handler { Line 420  sub handler {
   
     my $hosthere;      my $hosthere;
     if ($form{'iptoken'}) {      if ($form{'iptoken'}) {
           my %sessiondata = &Apache::lonnet::tmpget($form{'iptoken'});
           my $delete = &Apache::lonnet::tmpdel($form{'iptoken'});
         if (($sessiondata{'domain'} eq $form{'udom'}) &&          if (($sessiondata{'domain'} eq $form{'udom'}) &&
             ($sessiondata{'username'} eq $form{'uname'})) {              ($sessiondata{'username'} eq $form{'uname'})) {
             $hosthere = 1;              $hosthere = 1;

Removed from v.1.121.2.8  
changed lines
  Added in v.1.121.2.14


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