Optimize session update in sub store (#671, #LEMONLDAP-673)
This commit is contained in:
parent
900008c942
commit
a232f149fa
|
@ -251,10 +251,9 @@ sub new {
|
||||||
"You've to indicate a an Apache::Session storage module !" )
|
"You've to indicate a an Apache::Session storage module !" )
|
||||||
unless ( $self->{globalStorage} );
|
unless ( $self->{globalStorage} );
|
||||||
|
|
||||||
# Use global storage for all backedns by default
|
# Use global storage for all backends by default
|
||||||
|
|
||||||
# Persistent
|
# Persistent
|
||||||
|
|
||||||
$self->{persistentStorage} ||= $self->{globalStorage};
|
$self->{persistentStorage} ||= $self->{globalStorage};
|
||||||
if ( !$self->{persistentStorageOptions}
|
if ( !$self->{persistentStorageOptions}
|
||||||
or !%{ $self->{persistentStorageOptions} } )
|
or !%{ $self->{persistentStorageOptions} } )
|
||||||
|
@ -2226,8 +2225,8 @@ sub store {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Main session
|
# Main session
|
||||||
my $session = $self->getApacheSession( $self->{id} )
|
my $session = $self->getApacheSession( $self->{id} );
|
||||||
or return PE_APACHESESSIONERROR;
|
return PE_APACHESESSIONERROR unless ( $session->data );
|
||||||
|
|
||||||
# Compute unsecure cookie value if needed
|
# Compute unsecure cookie value if needed
|
||||||
if ( $self->{securedCookie} == 3 ) {
|
if ( $self->{securedCookie} == 3 ) {
|
||||||
|
@ -2235,6 +2234,8 @@ sub store {
|
||||||
$self->{cipher}->encryptHex( $self->{id}, "http" );
|
$self->{cipher}->encryptHex( $self->{id}, "http" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Fill session
|
||||||
|
my $infos = {};
|
||||||
foreach my $k ( keys %{ $self->{sessionInfo} } ) {
|
foreach my $k ( keys %{ $self->{sessionInfo} } ) {
|
||||||
next unless defined $self->{sessionInfo}->{$k};
|
next unless defined $self->{sessionInfo}->{$k};
|
||||||
my $displayValue = $self->{sessionInfo}->{$k};
|
my $displayValue = $self->{sessionInfo}->{$k};
|
||||||
|
@ -2242,8 +2243,9 @@ sub store {
|
||||||
$displayValue = '****';
|
$displayValue = '****';
|
||||||
}
|
}
|
||||||
$self->lmLog( "Store $displayValue in session key $k", 'debug' );
|
$self->lmLog( "Store $displayValue in session key $k", 'debug' );
|
||||||
$session->update( { $k => $self->{sessionInfo}->{$k} } );
|
$infos->{$k} = $self->{sessionInfo}->{$k};
|
||||||
}
|
}
|
||||||
|
$session->update($infos);
|
||||||
|
|
||||||
PE_OK;
|
PE_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user