diff --git a/core/lib/Foswiki/PageCache.pm b/core/lib/Foswiki/PageCache.pm index c95a3644e3..5266e6e198 100644 --- a/core/lib/Foswiki/PageCache.pm +++ b/core/lib/Foswiki/PageCache.pm @@ -683,6 +683,14 @@ sub _handleDirtyArea { $prefs->popTopicContext(); }; + my $request = $session->{request}; + my $context = $request->url( -full => 1, -path => 1, -query => 1 ) . time(); + my $cgis = $session->{users}->getCGISession(); + my $usingStrikeOne = $Foswiki::cfg{Validation}{Method} eq 'strikeone'; + + $text =~ +s//Foswiki::Validation::updateValidationKey($cgis, $context, $usingStrikeOne, $1)/gei; + #Foswiki::Func::writeDebug("out text='$text'") if TRACE; return $text; } diff --git a/core/lib/Foswiki/Validation.pm b/core/lib/Foswiki/Validation.pm index 5441c3278d..c4ae7c4591 100644 --- a/core/lib/Foswiki/Validation.pm +++ b/core/lib/Foswiki/Validation.pm @@ -92,6 +92,15 @@ sub addValidationKey { return ""; } +sub updateValidationKey { + my ( $cgis, $context, $strikeone, $oldKey ) = @_; + + # expire old key + expireValidationKeys( $cgis, $oldKey ); + + return addValidationKey( $cgis, $context, $strikeone ); +} + =begin TML ---++ StaticMethod generateValidationKey( $cgis, $context, $strikeone ) -> $nonce