Browse Source

Only catch anonymous OPTIONS for Office

Signed-off-by: Julius Härtl <jus@bitgrid.net>
tags/v19.0.0beta6
Julius Härtl 4 years ago
parent
commit
d7161b4eee
No account linked to committer's email address

+ 2
- 2
apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php View File

@@ -67,9 +67,9 @@ class AnonymousOptionsPlugin extends ServerPlugin {
$emptyAuth = $request->getHeader('Authorization') === null
|| $request->getHeader('Authorization') === ''
|| trim($request->getHeader('Authorization')) === 'Bearer';
$isAnonymousOption = $request->getMethod() === 'OPTIONS' && $emptyAuth;
$isAnonymousOfficeOption = $request->getMethod() === 'OPTIONS' && $isOffice && $emptyAuth;
$isOfficeHead = $request->getMethod() === 'HEAD' && $isOffice && $emptyAuth;
if ($isAnonymousOption || $isOfficeHead) {
if ($isAnonymousOfficeOption || $isOfficeHead) {
/** @var CorePlugin $corePlugin */
$corePlugin = $this->server->getPlugin('core');
// setup a fake tree for anonymous access

+ 20
- 2
apps/dav/tests/unit/DAV/AnonymousOptionsTest.php View File

@@ -53,18 +53,36 @@ class AnonymousOptionsTest extends TestCase {
public function testAnonymousOptionsRoot() {
$response = $this->sendRequest('OPTIONS', '');

$this->assertEquals(200, $response->getStatus());
$this->assertEquals(401, $response->getStatus());
}

public function testAnonymousOptionsNonRoot() {
$response = $this->sendRequest('OPTIONS', 'foo');

$this->assertEquals(200, $response->getStatus());
$this->assertEquals(401, $response->getStatus());
}

public function testAnonymousOptionsNonRootSubDir() {
$response = $this->sendRequest('OPTIONS', 'foo/bar');

$this->assertEquals(401, $response->getStatus());
}

public function testAnonymousOptionsRootOffice() {
$response = $this->sendRequest('OPTIONS', '', 'Microsoft Office does strange things');

$this->assertEquals(200, $response->getStatus());
}

public function testAnonymousOptionsNonRootOffice() {
$response = $this->sendRequest('OPTIONS', 'foo', 'Microsoft Office does strange things');

$this->assertEquals(200, $response->getStatus());
}

public function testAnonymousOptionsNonRootSubDirOffice() {
$response = $this->sendRequest('OPTIONS', 'foo/bar', 'Microsoft Office does strange things');

$this->assertEquals(200, $response->getStatus());
}


Loading…
Cancel
Save