Merge pull request #46760 from nextcloud/fix/appframework/csrf-custom-header

pull/46513/head
John Molakvoæ 2024-07-27 16:27:52 +07:00 committed by GitHub
commit 0ae83d6183
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 0 deletions

@ -426,6 +426,10 @@ class Request implements \ArrayAccess, \Countable, IRequest {
return false;
}
if ($this->getHeader('OCS-APIRequest') !== '') {
return true;
}
if (isset($this->items['get']['requesttoken'])) {
$token = $this->items['get']['requesttoken'];
} elseif (isset($this->items['post']['requesttoken'])) {

@ -2256,4 +2256,24 @@ class RequestTest extends \Test\TestCase {
$this->assertFalse($request->passesCSRFCheck());
}
public function testPassesCSRFCheckWithOCSAPIRequestHeader() {
/** @var Request $request */
$request = $this->getMockBuilder('\OC\AppFramework\Http\Request')
->setMethods(['getScriptName'])
->setConstructorArgs([
[
'server' => [
'HTTP_OCS_APIREQUEST' => 'true',
],
],
$this->requestId,
$this->config,
$this->csrfTokenManager,
$this->stream
])
->getMock();
$this->assertTrue($request->passesCSRFCheck());
}
}