[LON-CAPA-cvs] cvs: loncom / loncapa_apache.conf lonenc.pm lonencurl.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Fri, 07 Apr 2006 22:15:34 -0000
albertel Fri Apr 7 18:15:34 2006 EDT
Added files:
/loncom lonencurl.pm
Modified files:
/loncom lonenc.pm loncapa_apache.conf
Log:
- moving handler out of lonenc so it can be used in CGI
Index: loncom/lonenc.pm
diff -u loncom/lonenc.pm:1.13 loncom/lonenc.pm:1.14
--- loncom/lonenc.pm:1.13 Wed Mar 22 14:55:39 2006
+++ loncom/lonenc.pm Fri Apr 7 18:15:34 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network
# URL translation for encrypted filenames
#
-# $Id: lonenc.pm,v 1.13 2006/03/22 19:55:39 albertel Exp $
+# $Id: lonenc.pm,v 1.14 2006/04/07 22:15:34 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -29,36 +29,10 @@
package Apache::lonenc;
use strict;
-use Apache::Constants qw(:common :remotehost);
use Apache::lonnet;
-use Apache::File();
-use Apache::loncommon;
use Crypt::IDEA;
use Time::HiRes qw(gettimeofday);
-sub handler {
- my $r = shift;
- my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));
- my $lonid=$cookies{'lonID'};
- my $cookie;
- if ($lonid) {
- my $handle=$lonid->value;
- $handle=~s/\W//g;
- my $lonidsdir=$r->dir_config('lonIDsDir');
- $env{'request.enc'}=1;
- if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) {
-# Initialize Environment
- &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
-# Decrypt URL and redirect
- my $redirect=&unencrypted($r->uri);
- if ($r->args) { $redirect.='?'.$r->args; }
- $r->internal_redirect($redirect);
- return OK;
- }
- }
- return FORBIDDEN;
-}
-
sub encryptseed {
my $seed=$env{'course.'.$env{'request.course.id'}.'.internal.encseed'};
$seed=~s/[^0-9a-f]/0/g;
Index: loncom/loncapa_apache.conf
diff -u loncom/loncapa_apache.conf:1.126 loncom/loncapa_apache.conf:1.127
--- loncom/loncapa_apache.conf:1.126 Fri Apr 7 18:09:10 2006
+++ loncom/loncapa_apache.conf Fri Apr 7 18:15:34 2006
@@ -1,7 +1,7 @@
##
## loncapa_apache.conf -- Apache HTTP LON-CAPA configuration file
##
-## $Id: loncapa_apache.conf,v 1.126 2006/04/07 22:09:10 albertel Exp $
+## $Id: loncapa_apache.conf,v 1.127 2006/04/07 22:15:34 albertel Exp $
##
#
@@ -71,7 +71,7 @@
<LocationMatch "^/+enc.*">
SetHandler perl-script
-PerlHandler Apache::lonenc
+PerlHandler Apache::lonencurl
ErrorDocument 403 /adm/login
ErrorDocument 404 /adm/notfound.html
ErrorDocument 406 /adm/roles
Index: loncom/lonencurl.pm
+++ loncom/lonencurl.pm
# The LearningOnline Network
# URL translation for encrypted filenames
#
# $Id: lonencurl.pm,v 1.1 2006/04/07 22:15:34 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
package Apache::lonencurl;
use strict;
use Apache::Constants qw(:common :remotehost);
use CGI::Cookie();
use Apache::lonnet;
use Apache::lonenc;
sub handler {
my $r = shift;
my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));
my $lonid=$cookies{'lonID'};
my $cookie;
if ($lonid) {
my $handle=$lonid->value;
$handle=~s/\W//g;
my $lonidsdir=$r->dir_config('lonIDsDir');
$env{'request.enc'}=1;
if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) {
# Initialize Environment
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
# Decrypt URL and redirect
my $redirect=&Apache::lonenc::unencrypted($r->uri);
if ($r->args) { $redirect.='?'.$r->args; }
$r->internal_redirect($redirect);
return OK;
}
}
return FORBIDDEN;
}