Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a97ebf45

Von Moritz Bunkus vor fast 14 Jahren hinzugefügt

  • ID a97ebf45a374c126b9b5960c08d07bb4cbedfc4c
  • Vorgänger bda0d70b
  • Nachfolger 95ecb428

Nur dann Cookie setzen, wenn eine Session-ID vorhanden ist

Andernfalls wird bei einigen Fehlern (z.B. "action not defined") das
Cookie auf 'NO_SESSION' zurückgesetzt, weil in dem Moment die Session
noch nicht wiederhergestellt wurde. Erschwert die Entwicklung
ungemein.

Unterschiede anzeigen:

SL/Auth.pm
489 489
  if (!$cookie || $cookie->{is_expired} || ($cookie->{ip_address} ne $ENV{REMOTE_ADDR})) {
490 490
    $self->destroy_session();
491 491
    $main::lxdebug->leave_sub();
492
    return SESSION_EXPIRED;
492
    return $cookie ? SESSION_EXPIRED : SESSION_NONE;
493 493
  }
494 494

  
495 495
  $query = qq|SELECT sess_key, sess_value FROM auth.session_content WHERE session_id = ?|;
SL/Form.pm
594 594
    pop @segments;
595 595
    $uri->path_segments(@segments);
596 596

  
597
    my $session_cookie_value   = $main::auth->get_session_id();
598
    $session_cookie_value    ||= 'NO_SESSION';
597
    my $session_cookie_value = $main::auth->get_session_id();
599 598

  
600
    $session_cookie = $cgi->cookie('-name'   => $main::auth->get_session_cookie_name(),
601
                                   '-value'  => $session_cookie_value,
602
                                   '-path'   => $uri->path,
603
                                   '-secure' => $ENV{HTTPS});
599
    if ($session_cookie_value) {
600
      $session_cookie = $cgi->cookie('-name'   => $main::auth->get_session_cookie_name(),
601
                                     '-value'  => $session_cookie_value,
602
                                     '-path'   => $uri->path,
603
                                     '-secure' => $ENV{HTTPS});
604
    }
604 605
  }
605 606

  
606 607
  my %cgi_params = ('-type' => $params{content_type});
607 608
  $cgi_params{'-charset'} = $params{charset} if ($params{charset});
609
  $cgi_params{'-cookie'}  = $session_cookie  if ($session_cookie);
608 610

  
609
  my $output = $cgi->header('-cookie' => $session_cookie,
610
                            %cgi_params);
611
  my $output = $cgi->header(%cgi_params);
611 612

  
612 613
  $main::lxdebug->leave_sub();
613 614

  

Auch abrufbar als: Unified diff