Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a8780020

Von Sven Schöling vor fast 4 Jahren hinzugefügt

  • ID a878002010c9351eb39b86d3836600ed1ac74160
  • Vorgänger dae5fe9b
  • Nachfolger 013ebf88

Cookiehandling in pre_request_initializaton verschoben

Vorher wurden Cookis nur bei normalen 200 Responses gesetzt, nicht aber
bei redirects. Das ist jetzt behoben, und damit auch der berüchtigte
Doppellogin Bug.

Unterschiede anzeigen:

SL/Dispatcher.pm
95 95
  my $session_result = $::auth->restore_session;
96 96
  $::auth->create_or_refresh_session;
97 97

  
98
  $::request->cgi->add_cookie(
99
    $::auth->get_session_cookie_name,
100
    $::auth->get_session_id,
101
    path   => $::request->request_base_uri->path,
102
    secure => $::request->is_https,
103
    expires => '+' . $::auth->{session_timeout} . 'm',
104
  );
105

  
98 106
  if ($params{client}) {
99 107
    $::auth->set_client($params{client}) || die("cannot find client " . $params{client});
100 108

  
SL/Form.pm
314 314
}
315 315

  
316 316
sub create_http_response {
317
  my $self     = shift;
318
  my %params   = @_;
319

  
320
  if (defined $::auth) {
321
    my $uri      = $::request->request_uri;
322
    my @segments = $uri->path_segments;
323
    pop @segments;
324
    $uri->path_segments(@segments);
325

  
326
    if ($::auth->get_session_id) {
327
      $::request->cgi->add_cookie(
328
        $::auth->get_session_cookie_name,
329
        $::auth->get_session_id,
330
        path     => $uri->path,
331
        secure   => $::request->is_https,
332
        explires => '+' . $::auth->{session_timeout} . 'm',
333
      );
334
    }
335
  }
317
  my ($self, %params) = @_;
336 318

  
337 319
  $::request->cgi->header(%params);
338 320
}

Auch abrufbar als: Unified diff