version 1.2, 2004/03/31 05:29:23
|
version 1.8, 2004/12/17 21:44:19
|
Line 44 sub handler {
|
Line 44 sub handler {
|
my $handle=$lonid->value; |
my $handle=$lonid->value; |
$handle=~s/\W//g; |
$handle=~s/\W//g; |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
|
$ENV{'request.enc'}=1; |
if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) { |
if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) { |
# Initialize Environment |
# Initialize Environment |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); |
# Decrypt URL and redirect |
# Decrypt URL and redirect |
$r->internal_redirect(&unencrypted($r->uri)); |
my $redirect=&unencrypted($r->uri); |
|
if ($r->args) { $redirect.='?'.$r->args; } |
|
$r->internal_redirect($redirect); |
return OK; |
return OK; |
} |
} |
} |
} |
Line 79 sub unencrypted {
|
Line 82 sub unencrypted {
|
pack("H16",substr($uri,$encidx,16)) |
pack("H16",substr($uri,$encidx,16)) |
); |
); |
} |
} |
|
$ENV{'request.enc'}=1; |
return substr($decuri,0,$cmdlength); |
return substr($decuri,0,$cmdlength); |
} |
} |
|
|
sub encrypted { |
sub encrypted { |
my $uri=shift; |
my $uri=shift; |
|
if ($ENV{'request.role.adv'}) { return($uri); } |
my $seed=&encryptseed(); |
my $seed=&encryptseed(); |
unless ($seed) { |
unless ($seed) { |
return $uri; |
return $uri; |
Line 99 sub encrypted {
|
Line 104 sub encrypted {
|
return '/enc/'.$cmdlength.'/'.&Apache::lonnet::escape($encuri); |
return '/enc/'.$cmdlength.'/'.&Apache::lonnet::escape($encuri); |
} |
} |
|
|
|
sub check_encrypt { |
|
my $str=shift; |
|
if ($ENV{'request.enc'}) { return &Apache::lonenc::encrypted($str); } |
|
return $str; |
|
} |
|
|
|
sub check_decrypt { |
|
my ($str)=@_; |
|
if (ref($str)) { |
|
if ($$str=~m|^/enc/|) { $$str=&Apache::lonenc::unencrypted($$str); } |
|
return; |
|
} |
|
if ($str=~m|^/enc/|) { return &Apache::lonenc::unencrypted($str); } |
|
return $str; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |
|
|