version 1.470, 2004/02/02 20:21:25
|
version 1.471, 2004/02/04 22:39:06
|
Line 524 sub authenticate {
|
Line 524 sub authenticate {
|
my ($uname,$upass,$udom)=@_; |
my ($uname,$upass,$udom)=@_; |
$upass=escape($upass); |
$upass=escape($upass); |
$uname=~s/\W//g; |
$uname=~s/\W//g; |
if (($perlvar{'lonRole'} eq 'library') && |
my $uhome=&homeserver($uname,$udom); |
($udom eq $perlvar{'lonDefDomain'})) { |
if (!$uhome) { |
my $answer=reply("encrypt:auth:$udom:$uname:$upass",$perlvar{'lonHostID'}); |
&logthis("User $uname at $udom is unknown in authenticate"); |
if ($answer =~ /authorized/) { |
return 'no_host'; |
if ($answer eq 'authorized') { |
|
&logthis("User $uname at $udom authorized by local server"); |
|
return $perlvar{'lonHostID'}; |
|
} |
|
if ($answer eq 'non_authorized') { |
|
&logthis("User $uname at $udom rejected by local server"); |
|
return 'no_host'; |
|
} |
|
} |
|
} |
} |
|
my $answer=reply("encrypt:auth:$udom:$uname:$upass",$uhome); |
my $tryserver; |
if ($answer eq 'authorized') { |
foreach $tryserver (keys %libserv) { |
&logthis("User $uname at $udom authorized by $uhome"); |
if ($hostdom{$tryserver} eq $udom) { |
return $uhome; |
my $answer=reply("encrypt:auth:$udom:$uname:$upass",$tryserver); |
} |
if ($answer =~ /authorized/) { |
if ($answer eq 'non_authorized') { |
if ($answer eq 'authorized') { |
&logthis("User $uname at $udom rejected by $uhome"); |
&logthis("User $uname at $udom authorized by $tryserver"); |
return 'no_host'; |
return $tryserver; |
|
} |
|
if ($answer eq 'non_authorized') { |
|
&logthis("User $uname at $udom rejected by $tryserver"); |
|
return 'no_host'; |
|
} |
|
} |
|
} |
|
} |
} |
&logthis("User $uname at $udom could not be authenticated"); |
&logthis("User $uname at $udom threw error $answer when checking authentication mechanism"); |
return 'no_host'; |
return 'no_host'; |
} |
} |
|
|