--- loncom/auth/lonacc.pm 2002/02/26 21:01:33 1.28 +++ loncom/auth/lonacc.pm 2002/06/15 19:45:26 1.33 @@ -1,7 +1,7 @@ # The LearningOnline Network # Cookie Based Access Handler # -# $Id: lonacc.pm,v 1.28 2002/02/26 21:01:33 albertel Exp $ +# $Id: lonacc.pm,v 1.33 2002/06/15 19:45:26 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -172,7 +172,27 @@ sub handler { $requrl=~/\.(\w+)$/; if (&Apache::loncommon::fileembstyle($1) eq 'ssi') { # ------------------------------------- This is serious stuff, get symb and log - my $symb=&Apache::lonnet::symbread; + my $query=$r->args; + my $symb; + if ($query) { + &Apache::loncommon::get_unprocessed_cgi($query,['symb']); + } + if ($ENV{'form.symb'}) { + $symb=&Apache::lonnet::symbclean($ENV{'form.symb'}); + if (&Apache::lonnet::symbverify($symb,$requrl)) { + my ($map,$mid,$murl)=split(/\_\_\_/,$symb); + &Apache::lonnet::symblist($map,$murl => $mid, + 'last_known' => $murl); + } else { + $r->log_reason('Invalid symb for '.$requrl.': '. + $symb); + $ENV{'user.error.msg'}= + "$requrl:bre:1:1:Invalid Access"; + return HTTP_NOT_ACCEPTABLE; + } + } else { + $symb=&Apache::lonnet::symbread; + } $ENV{'request.symb'}=$symb; &Apache::lonnet::courseacclog($symb); } else {