summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2020-05-13 08:27:05 +0200
committerGitHub <noreply@github.com>2020-05-13 08:27:05 +0200
commit4fbea316a7eab0104f088a53edd61a70615e355e (patch)
treed008cdd8bb21783958e45671882f5c87686be496
parentab2df70e3ac0d8216c1986cc64aff83c215f1add (diff)
parent979dd1b6f5d4bd82120a821c8f6b8e7773921b15 (diff)
downloadnextcloud-server-4fbea316a7eab0104f088a53edd61a70615e355e.tar.gz
nextcloud-server-4fbea316a7eab0104f088a53edd61a70615e355e.zip
Merge pull request #20897 from nextcloud/bugfix/httpcache
Proxy server could cache http response when it is not private
-rw-r--r--lib/public/AppFramework/Http/Response.php9
-rw-r--r--tests/lib/AppFramework/Http/ResponseTest.php2
2 files changed, 5 insertions, 6 deletions
diff --git a/lib/public/AppFramework/Http/Response.php b/lib/public/AppFramework/Http/Response.php
index a48580c789d..6f418e42553 100644
--- a/lib/public/AppFramework/Http/Response.php
+++ b/lib/public/AppFramework/Http/Response.php
@@ -105,12 +105,11 @@ class Response {
* @return $this
* @since 6.0.0 - return value was added in 7.0.0
*/
- public function cacheFor(int $cacheSeconds) {
+ public function cacheFor(int $cacheSeconds, bool $public = false) {
if ($cacheSeconds > 0) {
- $this->addHeader('Cache-Control', 'max-age=' . $cacheSeconds . ', must-revalidate');
-
- // Old scool prama caching
- $this->addHeader('Pragma', 'public');
+ $pragma = $public ? 'public' : 'private';
+ $this->addHeader('Cache-Control', $pragma . ', max-age=' . $cacheSeconds . ', must-revalidate');
+ $this->addHeader('Pragma', $pragma);
// Set expires header
$expires = new \DateTime();
diff --git a/tests/lib/AppFramework/Http/ResponseTest.php b/tests/lib/AppFramework/Http/ResponseTest.php
index e6f88b6a6e9..f33d0a0089d 100644
--- a/tests/lib/AppFramework/Http/ResponseTest.php
+++ b/tests/lib/AppFramework/Http/ResponseTest.php
@@ -267,7 +267,7 @@ class ResponseTest extends \Test\TestCase {
$this->assertEquals(Http::STATUS_NOT_FOUND, $this->childResponse->getStatus());
$this->assertEquals('hi', $this->childResponse->getEtag());
$this->assertEquals('Thu, 01 Jan 1970 00:00:01 +0000', $headers['Last-Modified']);
- $this->assertEquals('max-age=33, must-revalidate',
+ $this->assertEquals('private, max-age=33, must-revalidate',
$headers['Cache-Control']);
}