Introduce DirectiveSetBuilderInterface
to allow runtime modification
#348
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the
DirectiveSetBuilderInterface
and the default implementationConfigurationDirectiveSetBuilder
proposed in #347, to allow for runtime modification of the CSP directive sets. The major changes are:DirectiveSetBuilderInterface
andConfigurationDirectiveSetBuilder
;ContentSecurityPolicyListener
constructor now takesDirectiveSetBuilderInterface
instead of the directive sets directly;NelmioSecurityExtension
to provide the configuration to theConfigurationDirectiveSetBuilder
s, which in turn are injected intoContentSecurityPolicyListener
(instead of the directive sets).This adds a layer between the configuration (and the directive sets built from it) and
ContentSecurityPolicyListener
. This layer provides an integration point for application code to modify the directive sets based on the request (e.g., in a controller or a kernel event listener).