From ab9ea97d3af62fd1c9c1f813b84e5c45a585a8d8 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Thu, 23 Apr 2015 16:33:51 +0200 Subject: [PATCH] Catch not existing User-Agent header In case of an not sent UA header consider the client as valid --- .../connector/sabre/blocklegacyclientplugin.php | 6 +++++- .../connector/sabre/BlockLegacyClientPluginTest.php | 13 ++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/private/connector/sabre/blocklegacyclientplugin.php b/lib/private/connector/sabre/blocklegacyclientplugin.php index 7da6ff563d..9480cd1f06 100644 --- a/lib/private/connector/sabre/blocklegacyclientplugin.php +++ b/lib/private/connector/sabre/blocklegacyclientplugin.php @@ -46,7 +46,7 @@ class BlockLegacyClientPlugin extends ServerPlugin { } /** - * @param \Sabre\DAV\ $server + * @param \Sabre\DAV\Server $server * @return void */ public function initialize(\Sabre\DAV\Server $server) { @@ -62,6 +62,10 @@ class BlockLegacyClientPlugin extends ServerPlugin { */ public function beforeHandler(RequestInterface $request) { $userAgent = $request->getHeader('User-Agent'); + if($userAgent === null) { + return; + } + $minimumSupportedDesktopVersion = $this->config->getSystemValue('minimum.supported.desktop.version', '1.7.0'); // Match on the mirall version which is in scheme "Mozilla/5.0 (%1) mirall/%2" or diff --git a/tests/lib/connector/sabre/BlockLegacyClientPluginTest.php b/tests/lib/connector/sabre/BlockLegacyClientPluginTest.php index 2c7835dd73..05488d9716 100644 --- a/tests/lib/connector/sabre/BlockLegacyClientPluginTest.php +++ b/tests/lib/connector/sabre/BlockLegacyClientPluginTest.php @@ -97,7 +97,7 @@ class BlockLegacyClientPluginTest extends TestCase { * @dataProvider newAndAlternateDesktopClientProvider * @param string $userAgent */ - public function testBeforeHandlerSucess($userAgent) { + public function testBeforeHandlerSuccess($userAgent) { /** @var \Sabre\HTTP\RequestInterface $request */ $request = $this->getMock('\Sabre\HTTP\RequestInterface'); $request @@ -115,4 +115,15 @@ class BlockLegacyClientPluginTest extends TestCase { $this->blockLegacyClientVersionPlugin->beforeHandler($request); } + public function testBeforeHandlerNoUserAgent() { + /** @var \Sabre\HTTP\RequestInterface $request */ + $request = $this->getMock('\Sabre\HTTP\RequestInterface'); + $request + ->expects($this->once()) + ->method('getHeader') + ->with('User-Agent') + ->will($this->returnValue(null)); + $this->blockLegacyClientVersionPlugin->beforeHandler($request); + } + }