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