PolicyMutatedEvent¶
New in version 12.3
The PSR-14 event
\TYPO3\
will be dispatched once all mutations have been applied to the current
Content Security Policy object, just before the
corresponding HTTP header is added to the HTTP response object. This allows
individual adjustments for custom implementations.
Example¶
Registration of the event listener in the extension's Services.
:
services:
# Place here the default dependency injection configuration
MyVendor\MyExtension\ContentSecurityPolicy\EventListener\MyEventListener:
tags:
- name: event.listener
identifier: 'my-extension/mutate-policy'
Read how to configure dependency injection in extensions.
The corresponding event listener class:
<?php
declare(strict_types=1);
namespace MyVendor\MyExtension\ContentSecurityPolicy\EventListener;
use TYPO3\CMS\Core\Security\ContentSecurityPolicy\Directive;
use TYPO3\CMS\Core\Security\ContentSecurityPolicy\Event\PolicyMutatedEvent;
use TYPO3\CMS\Core\Security\ContentSecurityPolicy\UriValue;
final class MyEventListener
{
public function __invoke(PolicyMutatedEvent $event): void
{
if ($event->scope->type->isFrontend()) {
// In our example, only the backend policy should be adjusted
return;
}
// Allow images from example.org
$event->getCurrentPolicy()->extend(
Directive::ImgSrc,
new UriValue('https://example.org/'),
);
}
}
API¶
- class PolicyMutatedEvent ¶
-
- Fully qualified name
-
\TYPO3\
CMS\ Core\ Security\ Content Security Policy\ Event\ Policy Mutated Event
- public readonly scope ¶
-
public readonly default
Policy ¶
- isPropagationStopped ( ) ¶
-
- Returns
-
bool
- stopPropagation ( ) ¶
- getCurrentPolicy ( ) ¶
-
- Returns
-
\TYPO3\
CMS\ Core\ Security\ Content Security Policy\ Policy
- setCurrentPolicy ( \TYPO3\CMS\Core\Security\ContentSecurityPolicy\Policy $currentPolicy) ¶
-
- param $currentPolicy
-
the currentPolicy
- getMutationCollections ( ) ¶
-
- Returns
-
list<\
Mutation Collection>
- setMutationCollections ( \TYPO3\CMS\Core\Security\ContentSecurityPolicy\MutationCollection ...$mutationCollections) ¶
-
- param $mutationCollections
-
the mutationCollections