version 1.121.2.17, 2019/08/01 00:42:34
|
version 1.121.2.18, 2019/08/03 22:45:30
|
Line 40 use Fcntl qw(:flock);
|
Line 40 use Fcntl qw(:flock);
|
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::File(); |
use Apache::File(); |
use HTML::Entities; |
use HTML::Entities; |
|
use Digest::MD5; |
|
|
# ------------------------------------------------------------ Successful login |
# ------------------------------------------------------------ Successful login |
sub success { |
sub success { |
Line 70 sub success {
|
Line 71 sub success {
|
} |
} |
} |
} |
|
|
# ------------------------------------------------------------ Get cookie ready |
# ------------------------------------------------------------ Get cookies ready |
$cookie="lonID=$cookie; path=/; HttpOnly"; |
my ($securecookie,$defaultcookie); |
|
my $ssl = $r->subprocess_env('https'); |
|
if ($ssl) { |
|
$securecookie="lonSID=$cookie; path=/; HttpOnly; secure"; |
|
my $lonidsdir=$r->dir_config('lonIDsDir'); |
|
if (($lonidsdir) && (-e "$lonidsdir/$cookie.id")) { |
|
my $linkname=substr(Digest::MD5::md5_hex(Digest::MD5::md5_hex(time(). {}. rand(). $$)), 0, 32).'_linked'; |
|
if (-e "$lonidsdir/$linkname.id") { |
|
unlink("$lonidsdir/$linkname.id"); |
|
} |
|
my $made_symlink = eval { symlink("$lonidsdir/$cookie.id", |
|
"$lonidsdir/$linkname.id"); 1 }; |
|
if ($made_symlink) { |
|
$defaultcookie = "lonLinkID=$linkname; path=/; HttpOnly;"; |
|
&Apache::lonnet::appenv({'user.linkedenv' => $linkname}); |
|
} |
|
} |
|
} else { |
|
$defaultcookie = "lonID=$cookie; path=/; HttpOnly;"; |
|
} |
# -------------------------------------------------------- Menu script and info |
# -------------------------------------------------------- Menu script and info |
my $destination = $lowerurl; |
my $destination = $lowerurl; |
|
|
Line 136 sub success {
|
Line 156 sub success {
|
# ------------------------------------------------- Output for successful login |
# ------------------------------------------------- Output for successful login |
|
|
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->header_out('Set-cookie' => $cookie); |
if ($securecookie) { |
|
$r->headers_out->add('Set-cookie' => $securecookie); |
|
} |
|
if ($defaultcookie) { |
|
$r->headers_out->add('Set-cookie' => $defaultcookie); |
|
} |
$r->send_http_header; |
$r->send_http_header; |
|
|
my %lt=&Apache::lonlocal::texthash( |
my %lt=&Apache::lonlocal::texthash( |