Reorg: Move CSP class to Request/
Bug: T321882 Change-Id: Ic809656a31e08626d0e5a1172da02b2397096e14
This commit is contained in:
parent
ca5d953895
commit
bfedab2eb8
8 changed files with 31 additions and 7 deletions
|
|
@ -293,7 +293,7 @@ $wgAutoloadLocalClasses = [
|
|||
'ContentHandler' => __DIR__ . '/includes/content/ContentHandler.php',
|
||||
'ContentModelChange' => __DIR__ . '/includes/content/ContentModelChange.php',
|
||||
'ContentModelLogFormatter' => __DIR__ . '/includes/logging/ContentModelLogFormatter.php',
|
||||
'ContentSecurityPolicy' => __DIR__ . '/includes/ContentSecurityPolicy.php',
|
||||
'ContentSecurityPolicy' => __DIR__ . '/includes/Request/ContentSecurityPolicy.php',
|
||||
'ContextSource' => __DIR__ . '/includes/context/ContextSource.php',
|
||||
'ContribsPager' => __DIR__ . '/includes/specials/pagers/ContribsPager.php',
|
||||
'ConvertExtensionToRegistration' => __DIR__ . '/maintenance/convertExtensionToRegistration.php',
|
||||
|
|
@ -1637,6 +1637,7 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Preferences\\SignatureValidatorFactory' => __DIR__ . '/includes/preferences/SignatureValidatorFactory.php',
|
||||
'MediaWiki\\Preferences\\TimezoneFilter' => __DIR__ . '/includes/preferences/TimezoneFilter.php',
|
||||
'MediaWiki\\ProcOpenError' => __DIR__ . '/includes/exception/ProcOpenError.php',
|
||||
'MediaWiki\\Request\\ContentSecurityPolicy' => __DIR__ . '/includes/Request/ContentSecurityPolicy.php',
|
||||
'MediaWiki\\Request\\DerivativeRequest' => __DIR__ . '/includes/Request/DerivativeRequest.php',
|
||||
'MediaWiki\\Request\\FauxRequest' => __DIR__ . '/includes/Request/FauxRequest.php',
|
||||
'MediaWiki\\Request\\FauxRequestUpload' => __DIR__ . '/includes/Request/FauxRequestUpload.php',
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
use MediaWiki\MainConfigNames;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Request\ContentSecurityPolicy;
|
||||
|
||||
/**
|
||||
* This class is a collection of static functions that serve two purposes:
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ use MediaWiki\Page\PageRecord;
|
|||
use MediaWiki\Page\PageReference;
|
||||
use MediaWiki\Parser\ParserOutputFlags;
|
||||
use MediaWiki\Permissions\PermissionStatus;
|
||||
use MediaWiki\Request\ContentSecurityPolicy;
|
||||
use MediaWiki\Request\FauxRequest;
|
||||
use MediaWiki\ResourceLoader as RL;
|
||||
use MediaWiki\ResourceLoader\ResourceLoader;
|
||||
|
|
|
|||
|
|
@ -25,10 +25,16 @@
|
|||
* @file
|
||||
*/
|
||||
|
||||
namespace MediaWiki\Request;
|
||||
|
||||
use Config;
|
||||
use LogicException;
|
||||
use MediaWiki\HookContainer\HookContainer;
|
||||
use MediaWiki\HookContainer\HookRunner;
|
||||
use MediaWiki\MainConfigNames;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use UnexpectedValueException;
|
||||
use WebResponse;
|
||||
|
||||
class ContentSecurityPolicy {
|
||||
public const REPORT_ONLY_MODE = 1;
|
||||
|
|
@ -60,7 +66,9 @@ class ContentSecurityPolicy {
|
|||
* @param HookContainer $hookContainer
|
||||
* @since 1.35 Method signature changed
|
||||
*/
|
||||
public function __construct( WebResponse $response, Config $mwConfig,
|
||||
public function __construct(
|
||||
WebResponse $response,
|
||||
Config $mwConfig,
|
||||
HookContainer $hookContainer
|
||||
) {
|
||||
$this->response = $response;
|
||||
|
|
@ -366,8 +374,11 @@ class ContentSecurityPolicy {
|
|||
private function getAdditionalSelfUrlsScript() {
|
||||
$additionalUrls = [];
|
||||
// wgExtensionAssetsPath for ?debug=true mode
|
||||
$pathVars = [ MainConfigNames::LoadScript, MainConfigNames::ExtensionAssetsPath,
|
||||
MainConfigNames::ResourceBasePath ];
|
||||
$pathVars = [
|
||||
MainConfigNames::LoadScript,
|
||||
MainConfigNames::ExtensionAssetsPath,
|
||||
MainConfigNames::ResourceBasePath,
|
||||
];
|
||||
|
||||
foreach ( $pathVars as $path ) {
|
||||
$url = $this->mwConfig->get( $path );
|
||||
|
|
@ -420,8 +431,12 @@ class ContentSecurityPolicy {
|
|||
$repoGroup->forEachForeignRepo( $callback, [ &$pathUrls ] );
|
||||
|
||||
// Globals that might point to a different domain
|
||||
$pathGlobals = [ MainConfigNames::LoadScript, MainConfigNames::ExtensionAssetsPath,
|
||||
MainConfigNames::StylePath, MainConfigNames::ResourceBasePath ];
|
||||
$pathGlobals = [
|
||||
MainConfigNames::LoadScript,
|
||||
MainConfigNames::ExtensionAssetsPath,
|
||||
MainConfigNames::StylePath,
|
||||
MainConfigNames::ResourceBasePath,
|
||||
];
|
||||
foreach ( $pathGlobals as $path ) {
|
||||
$pathUrls[] = $this->mwConfig->get( $path );
|
||||
}
|
||||
|
|
@ -511,7 +526,7 @@ class ContentSecurityPolicy {
|
|||
public static function isNonceRequired( Config $config ) {
|
||||
$configs = [
|
||||
$config->get( MainConfigNames::CSPHeader ),
|
||||
$config->get( MainConfigNames::CSPReportOnlyHeader )
|
||||
$config->get( MainConfigNames::CSPReportOnlyHeader ),
|
||||
];
|
||||
return self::isNonceRequiredArray( $configs );
|
||||
}
|
||||
|
|
@ -592,3 +607,5 @@ class ContentSecurityPolicy {
|
|||
$this->extraScriptSrc[] = $this->prepareUrlForCSP( $source );
|
||||
}
|
||||
}
|
||||
|
||||
class_alias( ContentSecurityPolicy::class, 'ContentSecurityPolicy' );
|
||||
|
|
@ -22,6 +22,7 @@
|
|||
|
||||
use MediaWiki\Logger\LoggerFactory;
|
||||
use MediaWiki\MainConfigNames;
|
||||
use MediaWiki\Request\ContentSecurityPolicy;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Wikimedia\ParamValidator\ParamValidator;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
use MediaWiki\MainConfigNames;
|
||||
use MediaWiki\Request\ContentSecurityPolicy;
|
||||
use Wikimedia\TestingAccessWrapper;
|
||||
|
||||
class ContentSecurityPolicyTest extends MediaWikiIntegrationTestCase {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ use MediaWiki\Page\PageReferenceValue;
|
|||
use MediaWiki\Page\PageStoreRecord;
|
||||
use MediaWiki\Parser\ParserOutputFlags;
|
||||
use MediaWiki\Permissions\Authority;
|
||||
use MediaWiki\Request\ContentSecurityPolicy;
|
||||
use MediaWiki\Request\FauxRequest;
|
||||
use MediaWiki\ResourceLoader as RL;
|
||||
use MediaWiki\ResourceLoader\ResourceLoader;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
use MediaWiki\MainConfigNames;
|
||||
use MediaWiki\Request\ContentSecurityPolicy;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue