Changeset 15575 for lang

Show
Ignore:
Timestamp:
07/09/08 22:01:32 (6 years ago)
Author:
hio
Message:

WebClient?, 認証情報のログが減っていたので補完.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/tiarra/trunk/module/System/WebClient.pm

    r15519 r15575  
    471471    peer      => $peer, 
    472472    conflist  => $conflist, 
    473     authtoken => undef, 
     473    authid    => undef, # login token (basic, etc.) 
     474    authtoken => undef, # session token (sid). 
    474475    ua_type   => undef, 
    475476    cgi_hash  => undef, # generated on demand. 
     
    509510  $DEBUG and $this->_debug("$peer: check auth ..."); 
    510511  my $accepted_list = $this->auth($conflist, $req); 
    511   $DEBUG and $this->_debug("$peer: auth=".Dumper($accepted_list));use Data::Dumper; 
     512  #$DEBUG and $this->_debug("$peer: auth=".Dumper($accepted_list));use Data::Dumper; 
     513  my $authid_list; 
    512514  my $authtoken_list; 
    513515  if( @$accepted_list ) 
     
    518520 
    519521    # extract authtoken list. 
     522    $authid_list    = []; 
    520523    $authtoken_list = []; 
    521524    foreach my $auth (@$accepted_list) 
    522525    { 
    523       if( grep { $_ eq $auth->{token} } @$authtoken_list ) 
    524       { 
    525         # no dup. 
    526         next; 
    527       } 
    528       push(@$authtoken_list, $auth->{token}); 
     526      if( !grep { $_ eq $auth->{token} } @$authtoken_list ) 
     527      { 
     528        # unique. 
     529        push(@$authtoken_list, $auth); 
     530      } 
     531      if( !grep { $_ eq $auth->{id} } @$authid_list ) 
     532      { 
     533        # unique. 
     534        push(@$authid_list, $auth); 
     535      } 
    529536    } 
    530537  }else 
     
    555562  } 
    556563 
    557  
     564  $req->{authid}    = ($authid_list    && @$authid_list)    ? $authid_list   ->[0]->{id}     : undef; 
    558565  $req->{authtoken} = ($authtoken_list && @$authtoken_list) ? $authtoken_list->[0]->{atoken} : undef; 
    559566  if( !$req->{authtoken} ) 
     
    585592  } 
    586593  $this->_update_session($req); 
     594 
    587595  if( $mode ne 'owner' && !$req->{session}{name} ) 
    588596  { 
    589597    $this->_debug("$peer: login required (no name)."); 
    590     return $this->_login($req); 
    591   } 
    592  
    593  
    594   $this->_debug("$peer: accept: sid=".($req->{authtoken}||'-')); 
    595   $this->_dispatch($req); 
     598    eval{ 
     599      $this->_login($req); 
     600    }; 
     601  }else 
     602  { 
     603    my $aid  = $req->{authid}        || '-'; 
     604    my $sid  = $req->{authtoken}     || '-'; 
     605    my $name = $req->{session}{name} || '-'; 
     606    $this->_debug("$peer: accept: id=$aid, name=$name, sid=$sid"); 
     607    eval { 
     608      $this->_dispatch($req); 
     609    }; 
     610  } 
     611  $@ and $this->_debug("$peer: error: $@"); 
     612  $DEBUG and $this->_debug("$peer: done"); 
    596613} 
    597614 
     
    610627  my $rnd = int(rand(0xFFFF_FFFF)); 
    611628  my $sid = "sid:$seed:$seq:$rnd"; 
    612   $DEBUG and $this->_debug("_new_session: $sid"); 
     629  $DEBUG and $this->_debug("$req->{peer}: _new_session: $sid"); 
    613630 
    614631  $req->{authtoken} = $sid; 
     
    653670  if( !$sid ) 
    654671  { 
    655     $DEBUG and $this->_debug("_get_session: no sid"); 
     672    $DEBUG and $this->_debug("$req->{peer}: _get_session: no sid"); 
    656673    $req->{session} = {}; 
    657674    return; 
     
    677694  # $sess->{seen} = \%seen; 
    678695  # $sess->{name} = $name; 
    679   $DEBUG and $this->_debug("_get_session: ".Dumper($sess));use Data::Dumper; 
     696  $DEBUG and $this->_debug("$req->{peer}: _get_session: $sess->{_sid}"); 
     697  #$DEBUG and $this->_debug("$req->{peer}: _get_session: ".Dumper($sess));use Data::Dumper; 
    680698 
    681699  $req->{session} = $sess; 
     
    727745        push(@accepts, { 
    728746          atoken => $val->{atoken}, # auth token, string or undef. 
     747          id     => $val->{id},     # auth id,    string. not undef. 
    729748          conf   => $conf, 
    730749        }); 
     
    23232342  if( $cgi->{n} ) 
    23242343  { 
     2344    my $old = $req->{session}{name} || '-'; 
     2345    $this->_debug("$req->{peer}: rename: $old => $cgi->{n}"); 
     2346 
    23252347    $req->{session}{name} = $cgi->{n}; 
    23262348  }