CSPDirective and CSPSource are now PHP backed enums in Aubes\CSPBundle\Enum\ (was classes with constants in Aubes\CSPBundle\)CSPPolicy moved to Aubes\CSPBundle\Model\CSPPolicy (was Aubes\CSPBundle\CSPPolicy)script_src (was script-src)ReportTo::render() removed, use renderReportTo() or renderReportingEndpoints()CSP::addGroup() now throws InvalidArgumentException if the group already existsReportController no longer accepts LoggerInterface: it dispatches a CSPViolationEvent instead. If you injected or extended the controller, update accordinglystrict, permissive, and api presets for common CSP configurations#[CSPGroup('name')] and #[CSPDisabled] on controllers/methods{% csp_script %}...{% end_csp_script %} and {% csp_style %}...{% end_csp_style %} for automatic nonce wrappingcsp_hash() Twig function for sha256/384/512 hash-based CSPcsp:check inspects your configuration for 15 security pitfalls (missing directives, unsafe sources, wildcards, etc.)symfony/web-profiler-bundle)debug: true forces all groups into report-only modeReport-To via backward_compatibility optionCSP service implements ResetInterface for FrankenPHP/RoadRunnerCSPViolationEvent dispatched on each report, handle violations your way (log, Sentry, database, etc.)report_logger config registers a log listener for violations via MonologLogicExceptionscript-src-attr, script-src-elem, style-src-attr, style-src-elem, worker-src, manifest-src, webrtc, require-trusted-types-for, trusted-typesstrict-dynamic, unsafe-hashes, wasm-unsafe-eval, report-sample, inline-speculation-rules, trusted-types-evalCSP::getGroups() public method to access all registered policy groupsimage-src directive renamed to correct img-srcReportController validates Content-Type, body size (10KB max), JSON format, and JSON depth (max 10 levels)Reporting-Endpoints header now correctly uses a single URL per endpoint name (per spec)symfony/twig-bundle is now optional: install it explicitly if you use nonce/hash Twig helpersHow can I help you explore Laravel packages today?