Merge pull request #20632 from nextcloud/bugfix/20624
Only catch anonymous OPTIONS for Office
This commit is contained in:
commit
3c5c4caa4d
|
@ -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
|
||||
|
|
|
@ -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…
Reference in New Issue