requestId->nonce; $request = $request->withAttribute('nonce', $nonce); $response = $handler->handle($request); $disposition = Disposition::enforce; $dispositionMap = new Map(); $dispositionMap[$disposition] = new DispositionConfiguration( true, true, $GLOBALS['TYPO3_CONF_VARS'][$scope->type->abbreviate()]['contentSecurityPolicyReportingUrl'], ); $policyBag = new PolicyBag($scope, $dispositionMap, new Behavior(), $nonce, $this->directiveHashCollection); if ($response->hasHeader('Content-Security-Policy') || $response->hasHeader('Content-Security-Policy-Report-Only')) { $this->logger->info('Content-Security-Policy not enforced due to existence of custom header', [ 'scope' => (string)$scope, 'uri' => (string)$request->getUri(), ]); return $response; } $this->policyProvider->prepare($policyBag, $request, $response); $policy = $policyBag->getPolicy($disposition); if ($policy->isEmpty()) { return $response; } if ($policyBag->behavior->useNonce === false) { $response = $this->responseService->dropNonceFromHtmlResponse($response, $nonce); } return $response->withHeader( $disposition->getHttpHeaderName(), $policy->compile($policyBag, $this->cache) ); } }