Skip to content

Commit fea04ef

Browse files
committed
Return proper responses when office is requesting OPTIONS/HEAD with empty Bearer header
Signed-off-by: Julius Härtl <jus@bitgrid.net>
1 parent d60bd93 commit fea04ef

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

apps/dav/lib/Connector/Sabre/AnonymousOptionsPlugin.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@ public function isRequestInRoot($path) {
5757
* @return bool
5858
*/
5959
public function handleAnonymousOptions(RequestInterface $request, ResponseInterface $response) {
60-
if ($request->getHeader('Authorization') === null && $request->getMethod() === 'OPTIONS' && $this->isRequestInRoot($request->getPath())) {
60+
$isOffice = preg_match('/Microsoft Office/i', $request->getHeader('User-Agent'));
61+
$isAnonymousOption = ($request->getMethod() === 'OPTIONS' && ($request->getHeader('Authorization') === null || trim($request->getHeader('Authorization')) === 'Bearer') && $this->isRequestInRoot($request->getPath()));
62+
$isOfficeHead = $request->getMethod() === 'HEAD' && $isOffice && $request->getHeader('Authorization') === 'Bearer';
63+
if ($isAnonymousOption || $isOfficeHead) {
6164
/** @var CorePlugin $corePlugin */
6265
$corePlugin = $this->server->getPlugin('core');
6366
// setup a fake tree for anonymous access

0 commit comments

Comments
 (0)