version 1.125, 2009/04/14 23:52:07
|
version 1.126, 2009/07/23 17:40:29
|
Line 278 sub sso_login {
|
Line 278 sub sso_login {
|
|
|
my ($user) = ($r->user =~ m/([a-zA-Z0-9_\-@.]*)/); |
my ($user) = ($r->user =~ m/([a-zA-Z0-9_\-@.]*)/); |
|
|
|
my $query = $r->args; |
|
my %form; |
|
if ($query) { |
|
foreach my $pair (split(/&/,$query)) { |
|
my ($name, $value) = split(/=/,$pair); |
|
$name = &unescape($name); |
|
if (($name eq 'role') || ($name eq 'symb')) { |
|
$value =~ tr/+/ /; |
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
$form{$name} = $value; |
|
} |
|
} |
|
} |
|
|
my $domain = $r->dir_config('lonDefDomain'); |
my $domain = $r->dir_config('lonDefDomain'); |
my $home=&Apache::lonnet::homeserver($user,$domain); |
my $home=&Apache::lonnet::homeserver($user,$domain); |
if ($home !~ /(con_lost|no_host|no_such_host)/) { |
if ($home !~ /(con_lost|no_host|no_such_host)/) { |
Line 285 sub sso_login {
|
Line 299 sub sso_login {
|
if ($r->dir_config("lonBalancer") eq 'yes') { |
if ($r->dir_config("lonBalancer") eq 'yes') { |
# login but immeaditly go to switch server to find us a new |
# login but immeaditly go to switch server to find us a new |
# machine |
# machine |
&Apache::lonauth::success($r,$user,$domain,$home,'noredirect'); |
&Apache::lonauth::success($r,$user,$domain,$home,'noredirect','',\%form); |
$env{'request.sso.login'} = 1; |
$env{'request.sso.login'} = 1; |
if (defined($r->dir_config("lonSSOReloginServer"))) { |
if (defined($r->dir_config("lonSSOReloginServer"))) { |
$env{'request.sso.reloginserver'} = |
$env{'request.sso.reloginserver'} = |
Line 302 sub sso_login {
|
Line 316 sub sso_login {
|
'server' => $r->dir_config('lonHostID'), |
'server' => $r->dir_config('lonHostID'), |
'sso.login' => 1 |
'sso.login' => 1 |
); |
); |
|
foreach my $item ('role','symb') { |
|
if (exists($form{$item})) { |
|
$info{$item} = $form{$item}; |
|
} |
|
} |
if ($r->dir_config("ssodirecturl") == 1) { |
if ($r->dir_config("ssodirecturl") == 1) { |
$info{'origurl'} = $r->uri; |
$info{'origurl'} = $r->uri; |
} |
} |