diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8617f675..56d26cd9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,59 @@ All notable changes to LaraFly are documented here. This project uses CalVer (`Y
## [Unreleased]
+## [26.09.8] - 2026-09-25
+
+### Fixed
+
+- **`RdKafkaConsumerClient::close()` stranded its librdkafka client, and the release before this one
+ shipped a version number that disagreed with itself in three places.** Two unrelated repairs in one
+ release, because the second was found while verifying the first.
+
+ `close()` called `KafkaConsumer::close()` and then released the property. Releasing the property is
+ exactly right and was always there; it did nothing, because by the time it ran the handle was
+ already gone. ext-rdkafka 6.0.5, `kafka_consumer.c:531-542`, is the whole of that method:
+
+ ```
+ rd_kafka_consumer_close(intern->rk);
+ intern->rk = NULL;
+ ```
+
+ There is no `rd_kafka_destroy()`, and the free handler at `kafka_consumer.c:53-64` destroys the
+ handle only `if (intern->rk)` — which `close()` has just nulled. So the PHP object is freed and the
+ `rd_kafka_t` is not. Measured on PHP 8.5.8 / ext-rdkafka 6.0.5 / librdkafka 2.15.1, no broker:
+ **four OS threads stranded per closed consumer**, still there after five seconds of polling; zero
+ when the reference is simply dropped. Unconditional, not a race.
+
+ It now calls `unsubscribe()` — which is what leaves the consumer group, is safe on a consumer that
+ never subscribed, and lets the drop destroy the client (librdkafka logs `Destroying cgrp`). Pinned
+ by `RdKafkaConsumerClientLeavesNoThreadsTest`, which counts `rd_kafka_thread_cnt()` rather than
+ asserting a `WeakReference` goes null: **the natural test is green on this bug**, because the PHP
+ object really is freed and the leak is underneath it, in C.
+
+ A consumer of this framework found it the hard way. In dworkers the same call had been added
+ deliberately — to three integration tests and a long-running console command — to stop a segfault
+ at PHP shutdown after a green suite, under a comment explaining why it was necessary. It was the
+ cause. Anything that closes a consumer per restart accumulates dead clients and their threads for
+ as long as the process lives, which matters most where this class is used: a daemon.
+
+### Fixed — the release process itself
+
+- **The version was carried in four places and 26.09.6 moved one of them.** `Version::VERSION` said
+ `26.09.6`, the CHANGELOG's latest heading said `26.09.7`, the README badge said `26.09.5` and the
+ verbatim listing in `docs/versioning.md` said `26.09.5` — so the code inside the tag `v26.09.7`
+ reported itself as `26.09.6`. `VersionConsistencyTest` and `DocsCodeIsRealTest` had been red on
+ `main` since `26.09.6`, which is why CI was failing on all three PHP versions. All four now carry
+ `26.09.8`.
+
+- **`pint --test` was red on `main`** in three files, from the `26.09.7` commit: an import added out
+ of alphabetical order in `SecurityAutoConfiguration`, and the two security cache manifests
+ recompiled beside it.
+
+- **`phpstan` had three errors** in `InMemoryJwksProviderTest`, all from one missing
+ `@return array` on its fixture helper.
+
+ Together these are why `composer check` could not pass on `main`. It passes now.
+
## [26.09.7] - 2026-09-25
### Fixed
diff --git a/README.md b/README.md
index 61698a8f..ffbab61c 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@
-
+
diff --git a/docs/versioning.md b/docs/versioning.md
index 81b70eaf..5957c4ca 100644
--- a/docs/versioning.md
+++ b/docs/versioning.md
@@ -21,7 +21,7 @@ The single place the current version *is* asserted in code is:
```php
final class Version
{
- public const string VERSION = '26.09.5';
+ public const string VERSION = '26.09.8';
}
```
diff --git a/packages/eda-kafka/src/RdKafkaConsumerClient.php b/packages/eda-kafka/src/RdKafkaConsumerClient.php
index 51c292ac..8c2199d8 100644
--- a/packages/eda-kafka/src/RdKafkaConsumerClient.php
+++ b/packages/eda-kafka/src/RdKafkaConsumerClient.php
@@ -184,9 +184,39 @@ public static function dltHeaders(ReceivedEnvelope $received, string $reason): a
return $headers;
}
+ /**
+ * Let the consumer go — and do NOT call `KafkaConsumer::close()` to do it.
+ *
+ * ext-rdkafka 6.0.5, kafka_consumer.c:531-542, is the whole body of that method:
+ *
+ * rd_kafka_consumer_close(intern->rk);
+ * intern->rk = NULL;
+ *
+ * There is no `rd_kafka_destroy()`. The free handler at kafka_consumer.c:53-64 destroys the
+ * handle only `if (intern->rk)` — which `close()` has just nulled — so `close()` hands the
+ * `rd_kafka_t` to nobody. The PHP object is then freed and the client outlives it, with its
+ * threads, until the process exits. Measured on PHP 8.5.8 / ext-rdkafka 6.0.5 / librdkafka
+ * 2.15.1: four OS threads stranded per closed consumer, still there after five seconds of
+ * polling; zero when the reference is simply dropped. It is unconditional, not a race.
+ *
+ * THAT IS WHY THE NULLING BELOW WAS NOT ENOUGH. Releasing the property is exactly right and was
+ * always here — but by the time it ran, `close()` had already detached the handle, so freeing
+ * the object freed nothing. The two lines looked like a careful teardown and were a leak.
+ *
+ * `unsubscribe()` is what leaves the consumer group, and it is safe on a consumer that never
+ * subscribed (verified: no throw). librdkafka logs "Destroying cgrp" when the reference is
+ * dropped afterwards, so group membership is still surrendered — nothing the old shape
+ * achieved is lost.
+ *
+ * A CONSUMER OF THIS FRAMEWORK FOUND IT THE HARD WAY. In dworkers the same call had been added
+ * to three integration tests and a long-running console command, deliberately, to stop a
+ * segfault at PHP shutdown after a green suite — and it was the cause of it. Anything that
+ * closes a consumer per restart accumulates dead clients and their threads for as long as the
+ * process lives, which matters most in exactly the place this class is used: a daemon.
+ */
public function close(): void
{
- $this->consumer?->close();
+ $this->consumer?->unsubscribe();
$this->consumer = null;
}
diff --git a/packages/eda-kafka/tests/RdKafkaConsumerClientLeavesNoThreadsTest.php b/packages/eda-kafka/tests/RdKafkaConsumerClientLeavesNoThreadsTest.php
new file mode 100644
index 00000000..792a7bff
--- /dev/null
+++ b/packages/eda-kafka/tests/RdKafkaConsumerClientLeavesNoThreadsTest.php
@@ -0,0 +1,65 @@
+rk);
+ * intern->rk = NULL;
+ *
+ * No `rd_kafka_destroy()`, and the free handler at kafka_consumer.c:53-64 destroys the handle only
+ * `if (intern->rk)`. So after `close()` the PHP object is freed and the `rd_kafka_t` is not: it and
+ * its four OS threads live until the process exits. In a daemon — which is what this client is for —
+ * that accumulates for as long as the process runs.
+ *
+ * NO BROKER IS NEEDED and none is contacted. `new KafkaConsumer($conf)` starts librdkafka's threads
+ * and resolves the bootstrap address lazily, so an unroutable port costs nothing and keeps this test
+ * out of the docker-gated integration suite where KafkaRoundTripTest lives.
+ *
+ * `rd_kafka_thread_cnt()` IS THE INSTRUMENT, and the choice matters. A WeakReference assertion — the
+ * natural way to test that an object was released — is GREEN on this bug, because the PHP object
+ * really is freed; the leak is underneath it, in C. Only a process-global count of live handles can
+ * see it.
+ */
+it('destroys the librdkafka client when the consumer is closed, leaving no threads behind', function () {
+ $antes = rd_kafka_thread_cnt();
+
+ for ($i = 0; $i < 3; $i++) {
+ $client = new RdKafkaConsumerClient(
+ new KafkaConsumerFactory('127.0.0.1:59999', 'firefly-leak-probe-'.bin2hex(random_bytes(4))),
+ new KafkaProducerFactory('127.0.0.1:59999'),
+ new JsonSerializer,
+ );
+
+ $client->subscribe(['firefly-leak-probe-topic']);
+ $client->close();
+
+ unset($client);
+ }
+
+ // Half a second in case any part of the teardown were asynchronous. It is not — the count comes
+ // back at once — but a test that fails on a scheduler hiccup is worse than a slightly slow one.
+ usleep(500_000);
+
+ expect(rd_kafka_thread_cnt())->toBe(
+ $antes,
+ 'the client was closed and its librdkafka handle outlived it. The usual cause is a '
+ .'`KafkaConsumer::close()` call: ext-rdkafka nulls the handle without destroying it, so '
+ .'closing strands the client and its threads. Call unsubscribe() and release the reference.',
+ );
+})->skip(
+ // Eagerly, at collection time, exactly as KafkaRoundTripTest gates itself: on a machine without
+ // the extension there is no handle to leak and nothing to count. No broker is required, so
+ // unlike that suite this one does NOT ask for FIREFLY_KAFKA_BROKERS.
+ ! extension_loaded('rdkafka') || ! function_exists('rd_kafka_thread_cnt'),
+ 'ext-rdkafka is what leaks; without it there is nothing to count.',
+);
diff --git a/packages/kernel/src/Version.php b/packages/kernel/src/Version.php
index 50a7638f..749dc8c1 100644
--- a/packages/kernel/src/Version.php
+++ b/packages/kernel/src/Version.php
@@ -15,5 +15,5 @@
*/
final class Version
{
- public const string VERSION = '26.09.6';
+ public const string VERSION = '26.09.8';
}
diff --git a/packages/security/cache/firefly-security-components.php b/packages/security/cache/firefly-security-components.php
index 93ed9bdd..9a007376 100644
--- a/packages/security/cache/firefly-security-components.php
+++ b/packages/security/cache/firefly-security-components.php
@@ -4,765 +4,651 @@
// Generated by firefly/container. Do not edit.
-return array (
- 0 =>
- array (
- 'class' => 'Firefly\\Security\\Access\\Method\\MethodSecurityAdviceSource',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Data\\Proxy\\AdviceSource',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 1 =>
- array (
- 'class' => 'Firefly\\Security\\Actuator\\SecurityActuatorAutoConfiguration',
- 'stereotype' => 'configuration',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 400,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- ),
- 'beans' =>
- array (
- 0 =>
- array (
- 'method' => 'healthDetailsAuthorizer',
- 'returns' => 'Firefly\\Actuator\\Health\\HealthDetailsAuthorizer',
- 'name' => NULL,
+return [
+ 0 => [
+ 'class' => 'Firefly\\Security\\Access\\Method\\MethodSecurityAdviceSource',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
'order' => 0,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Data\\Proxy\\AdviceSource',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- 1 => 'Firefly\\Security\\Access\\RoleHierarchy',
- 2 => 'Psr\\Log\\LoggerInterface',
- ),
- ),
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 2 =>
- array (
- 'class' => 'Firefly\\Security\\OAuth2\\OAuth2ResourceServerFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -85,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\OAuth2\\JwksProvider',
- 1 => 'Firefly\\Config\\Config',
- ),
- ),
- 3 =>
- array (
- 'class' => 'Firefly\\Security\\OpenApi\\MethodSecurityRequirementContributor',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\OpenApi\\Security\\SecurityRequirementContributor',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Access\\Method\\SecurityMethodManifest',
- 1 => 'Firefly\\Config\\Config',
- ),
- ),
- 4 =>
- array (
- 'class' => 'Firefly\\Security\\SecurityAutoConfiguration',
- 'stereotype' => 'configuration',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 500,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- ),
- 'beans' =>
- array (
- 0 =>
- array (
- 'method' => 'passwordEncoder',
- 'returns' => 'Firefly\\Security\\Password\\PasswordEncoder',
- 'name' => NULL,
+ 'dependencies' => [
+ ],
+ ],
+ 1 => [
+ 'class' => 'Firefly\\Security\\Actuator\\SecurityActuatorAutoConfiguration',
+ 'stereotype' => 'configuration',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 1 =>
- array (
- 'method' => 'userDetailsService',
- 'returns' => 'Firefly\\Security\\User\\UserDetailsService',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 2 =>
- array (
- 'method' => 'roleHierarchy',
- 'returns' => 'Firefly\\Security\\Access\\RoleHierarchy',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 3 =>
- array (
- 'method' => 'permissionEvaluator',
- 'returns' => 'Firefly\\Security\\Access\\PermissionEvaluator',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 4 =>
- array (
- 'method' => 'securityExpressionEvaluator',
- 'returns' => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
+ 'order' => 400,
+ 'qualifier' => null,
+ 'interfaces' => [
+ ],
+ 'beans' => [
+ 0 => [
+ 'method' => 'healthDetailsAuthorizer',
+ 'returns' => 'Firefly\\Actuator\\Health\\HealthDetailsAuthorizer',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ 1 => 'Firefly\\Security\\Access\\RoleHierarchy',
+ 2 => 'Psr\\Log\\LoggerInterface',
+ ],
+ ],
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 5 =>
- array (
- 'method' => 'authenticationManager',
- 'returns' => 'Firefly\\Security\\Authentication\\AuthenticationManager',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => true,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\User\\UserDetailsService',
- 1 => 'Firefly\\Security\\Password\\PasswordEncoder',
- ),
- ),
- 6 =>
- array (
- 'method' => 'authorizationChecker',
- 'returns' => 'Firefly\\Security\\Access\\AuthorizationChecker',
- 'name' => NULL,
+ 'dependencies' => [
+ ],
+ ],
+ 2 => [
+ 'class' => 'Firefly\\Security\\OAuth2\\OAuth2ResourceServerFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -85,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
- 1 => 'Firefly\\Security\\Access\\RoleHierarchy',
- 2 => 'Firefly\\Security\\Access\\PermissionEvaluator',
- ),
- ),
- 7 =>
- array (
- 'method' => 'methodSecurityEvaluator',
- 'returns' => 'Firefly\\Security\\Access\\Method\\MethodSecurityEvaluator',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\OAuth2\\JwksProvider',
+ 1 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 3 => [
+ 'class' => 'Firefly\\Security\\OpenApi\\MethodSecurityRequirementContributor',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
'order' => 0,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\OpenApi\\Security\\SecurityRequirementContributor',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
- 1 => 'Firefly\\Security\\Access\\RoleHierarchy',
- 2 => 'Firefly\\Security\\Access\\PermissionEvaluator',
- 3 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- 4 => 'Psr\\Log\\LoggerInterface',
- ),
- ),
- 8 =>
- array (
- 'method' => 'methodSecurityInterceptor',
- 'returns' => 'Firefly\\Security\\Access\\Method\\MethodSecurityInterceptor',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Access\\Method\\SecurityMethodManifest',
+ 1 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 4 => [
+ 'class' => 'Firefly\\Security\\SecurityAutoConfiguration',
+ 'stereotype' => 'configuration',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => 500,
+ 'qualifier' => null,
+ 'interfaces' => [
+ ],
+ 'beans' => [
+ 0 => [
+ 'method' => 'passwordEncoder',
+ 'returns' => 'Firefly\\Security\\Password\\PasswordEncoder',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ ],
+ ],
+ 1 => [
+ 'method' => 'userDetailsService',
+ 'returns' => 'Firefly\\Security\\User\\UserDetailsService',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 2 => [
+ 'method' => 'roleHierarchy',
+ 'returns' => 'Firefly\\Security\\Access\\RoleHierarchy',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 3 => [
+ 'method' => 'permissionEvaluator',
+ 'returns' => 'Firefly\\Security\\Access\\PermissionEvaluator',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ ],
+ ],
+ 4 => [
+ 'method' => 'securityExpressionEvaluator',
+ 'returns' => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ ],
+ ],
+ 5 => [
+ 'method' => 'authenticationManager',
+ 'returns' => 'Firefly\\Security\\Authentication\\AuthenticationManager',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => true,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\User\\UserDetailsService',
+ 1 => 'Firefly\\Security\\Password\\PasswordEncoder',
+ ],
+ ],
+ 6 => [
+ 'method' => 'authorizationChecker',
+ 'returns' => 'Firefly\\Security\\Access\\AuthorizationChecker',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
+ 1 => 'Firefly\\Security\\Access\\RoleHierarchy',
+ 2 => 'Firefly\\Security\\Access\\PermissionEvaluator',
+ ],
+ ],
+ 7 => [
+ 'method' => 'methodSecurityEvaluator',
+ 'returns' => 'Firefly\\Security\\Access\\Method\\MethodSecurityEvaluator',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
+ 1 => 'Firefly\\Security\\Access\\RoleHierarchy',
+ 2 => 'Firefly\\Security\\Access\\PermissionEvaluator',
+ 3 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ 4 => 'Psr\\Log\\LoggerInterface',
+ ],
+ ],
+ 8 => [
+ 'method' => 'methodSecurityInterceptor',
+ 'returns' => 'Firefly\\Security\\Access\\Method\\MethodSecurityInterceptor',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Access\\Method\\MethodSecurityEvaluator',
+ 1 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 9 => [
+ 'method' => 'methodSecurityMessageEnforcer',
+ 'returns' => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Cqrs\\Handler\\HandlerManifest',
+ 1 => 'Firefly\\Security\\Access\\Method\\SecurityMethodManifest',
+ 2 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
+ 3 => 'Firefly\\Security\\Access\\RoleHierarchy',
+ 4 => 'Firefly\\Security\\Access\\PermissionEvaluator',
+ 5 => 'Firefly\\Config\\Config',
+ 6 => 'Psr\\Log\\LoggerInterface',
+ 7 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ ],
+ ],
+ 10 => [
+ 'method' => 'commandAuthorizer',
+ 'returns' => 'Firefly\\Cqrs\\Security\\CommandAuthorizer',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
+ ],
+ ],
+ 11 => [
+ 'method' => 'queryAuthorizer',
+ 'returns' => 'Firefly\\Cqrs\\Security\\QueryAuthorizer',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
+ ],
+ ],
+ 12 => [
+ 'method' => 'auditorAware',
+ 'returns' => 'Firefly\\Data\\Repository\\Auditing\\AuditorAware',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ ],
+ ],
+ 13 => [
+ 'method' => 'authenticationEventPublisher',
+ 'returns' => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Context\\Event\\ApplicationEventPublisher',
+ ],
+ ],
+ 14 => [
+ 'method' => 'sessionSecuritySettings',
+ 'returns' => 'Firefly\\Security\\Session\\SessionSecuritySettings',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 15 => [
+ 'method' => 'securityContextRepository',
+ 'returns' => 'Firefly\\Security\\Session\\SecurityContextRepository',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ ],
+ ],
+ 16 => [
+ 'method' => 'formLoginSettings',
+ 'returns' => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 17 => [
+ 'method' => 'httpBasicSettings',
+ 'returns' => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 18 => [
+ 'method' => 'logoutSettings',
+ 'returns' => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 19 => [
+ 'method' => 'rememberMeSettings',
+ 'returns' => 'Firefly\\Security\\Web\\Settings\\RememberMeSettings',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 20 => [
+ 'method' => 'rememberMeServices',
+ 'returns' => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\RememberMeSettings',
+ 1 => 'Firefly\\Security\\User\\UserDetailsService',
+ 2 => 'Psr\\Log\\LoggerInterface',
+ ],
+ ],
+ 21 => [
+ 'method' => 'authenticationEntryPoint',
+ 'returns' => 'Firefly\\Security\\Web\\EntryPoint\\AuthenticationEntryPoint',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ 1 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
+ 2 => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
+ 3 => 'Firefly\\Web\\Error\\ErrorPageRenderer',
+ 4 => 'Firefly\\Web\\Exception\\ProblemDetailsRenderer',
+ ],
+ ],
+ 22 => [
+ 'method' => 'sessionCsrf',
+ 'returns' => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Illuminate\\Container\\Container',
+ ],
+ ],
+ 23 => [
+ 'method' => 'jwtService',
+ 'returns' => 'Firefly\\Security\\Jwt\\JwtService',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 24 => [
+ 'method' => 'httpSecurity',
+ 'returns' => 'Firefly\\Security\\Access\\HttpSecurity',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 25 => [
+ 'method' => 'jwksProvider',
+ 'returns' => 'Firefly\\Security\\OAuth2\\JwksProvider',
+ 'name' => null,
+ 'scope' => 'Singleton',
+ 'primary' => false,
+ 'order' => 0,
+ 'lazy' => false,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ 1 => 'Illuminate\\Container\\Container',
+ ],
+ ],
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Access\\Method\\MethodSecurityEvaluator',
- 1 => 'Firefly\\Config\\Config',
- ),
- ),
- 9 =>
- array (
- 'method' => 'methodSecurityMessageEnforcer',
- 'returns' => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
- 'name' => NULL,
+ 'dependencies' => [
+ ],
+ ],
+ 5 => [
+ 'class' => 'Firefly\\Security\\Session\\SecurityContextPersistenceFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -94,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Cqrs\\Handler\\HandlerManifest',
- 1 => 'Firefly\\Security\\Access\\Method\\SecurityMethodManifest',
- 2 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
- 3 => 'Firefly\\Security\\Access\\RoleHierarchy',
- 4 => 'Firefly\\Security\\Access\\PermissionEvaluator',
- 5 => 'Firefly\\Config\\Config',
- 6 => 'Psr\\Log\\LoggerInterface',
- 7 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- ),
- ),
- 10 =>
- array (
- 'method' => 'commandAuthorizer',
- 'returns' => 'Firefly\\Cqrs\\Security\\CommandAuthorizer',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Session\\SecurityContextRepository',
+ 1 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
+ 2 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 6 => [
+ 'class' => 'Firefly\\Security\\Web\\Basic\\HttpBasicFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -91,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
- ),
- ),
- 11 =>
- array (
- 'method' => 'queryAuthorizer',
- 'returns' => 'Firefly\\Cqrs\\Security\\QueryAuthorizer',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
+ 1 => 'Firefly\\Security\\Authentication\\AuthenticationManager',
+ 2 => 'Firefly\\Security\\Web\\EntryPoint\\BasicAuthenticationEntryPoint',
+ 3 => 'Firefly\\Security\\Session\\SecurityContextRepository',
+ 4 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
+ 5 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ 6 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 7 => [
+ 'class' => 'Firefly\\Security\\Web\\CsrfFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -80,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
- ),
- ),
- 12 =>
- array (
- 'method' => 'auditorAware',
- 'returns' => 'Firefly\\Data\\Repository\\Auditing\\AuditorAware',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ 1 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
+ ],
+ ],
+ 8 => [
+ 'class' => 'Firefly\\Security\\Web\\HttpSecurityFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -70,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 13 =>
- array (
- 'method' => 'authenticationEventPublisher',
- 'returns' => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Access\\HttpSecurity',
+ 1 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
+ 2 => 'Firefly\\Security\\Access\\RoleHierarchy',
+ 3 => 'Firefly\\Security\\Access\\PermissionEvaluator',
+ 4 => 'Firefly\\Config\\Config',
+ 5 => 'Firefly\\Security\\Web\\EntryPoint\\AuthenticationEntryPoint',
+ 6 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
+ 7 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ ],
+ ],
+ 9 => [
+ 'class' => 'Firefly\\Security\\Web\\JwtAuthenticationFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -90,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Context\\Event\\ApplicationEventPublisher',
- ),
- ),
- 14 =>
- array (
- 'method' => 'sessionSecuritySettings',
- 'returns' => 'Firefly\\Security\\Session\\SessionSecuritySettings',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Jwt\\JwtService',
+ 1 => 'Firefly\\Config\\Config',
+ ],
+ ],
+ 10 => [
+ 'class' => 'Firefly\\Security\\Web\\Login\\FormLoginFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -92,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 15 =>
- array (
- 'method' => 'securityContextRepository',
- 'returns' => 'Firefly\\Security\\Session\\SecurityContextRepository',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
+ 1 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
+ 2 => 'Firefly\\Security\\Authentication\\AuthenticationManager',
+ 3 => 'Firefly\\Security\\Session\\SecurityContextRepository',
+ 4 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ 5 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
+ 6 => 'Illuminate\\Container\\Container',
+ 7 => 'Firefly\\Config\\Config',
+ 8 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
+ ],
+ ],
+ 11 => [
+ 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -93,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 16 =>
- array (
- 'method' => 'formLoginSettings',
- 'returns' => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
+ 1 => 'Firefly\\Security\\Web\\Logout\\LogoutHandler',
+ 2 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
+ 3 => 'Illuminate\\Container\\Container',
+ 4 => 'Firefly\\Config\\Config',
+ 5 => 'Firefly\\Security\\Web\\Logout\\LogoutSuccessHandler',
+ ],
+ ],
+ 12 => [
+ 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutHandler',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
'order' => 0,
+ 'qualifier' => null,
+ 'interfaces' => [
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 17 =>
- array (
- 'method' => 'httpBasicSettings',
- 'returns' => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
+ 1 => 'Firefly\\Security\\Session\\SecurityContextRepository',
+ 2 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ 3 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
+ ],
+ ],
+ 13 => [
+ 'class' => 'Firefly\\Security\\Web\\RememberMe\\RememberMeAuthenticationFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
+ 'order' => -83,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 18 =>
- array (
- 'method' => 'logoutSettings',
- 'returns' => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
- 'name' => NULL,
+ 'dependencies' => [
+ 0 => 'Firefly\\Security\\Session\\SecurityContextRepository',
+ 1 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
+ 2 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ 3 => 'Firefly\\Config\\Config',
+ 4 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
+ ],
+ ],
+ 14 => [
+ 'class' => 'Firefly\\Security\\Web\\SecurityHeadersFilter',
+ 'stereotype' => 'component',
+ 'name' => null,
'scope' => 'Singleton',
'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 19 =>
- array (
- 'method' => 'rememberMeSettings',
- 'returns' => 'Firefly\\Security\\Web\\Settings\\RememberMeSettings',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 20 =>
- array (
- 'method' => 'rememberMeServices',
- 'returns' => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\RememberMeSettings',
- 1 => 'Firefly\\Security\\User\\UserDetailsService',
- 2 => 'Psr\\Log\\LoggerInterface',
- ),
- ),
- 21 =>
- array (
- 'method' => 'authenticationEntryPoint',
- 'returns' => 'Firefly\\Security\\Web\\EntryPoint\\AuthenticationEntryPoint',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- 1 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
- 2 => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
- 3 => 'Firefly\\Web\\Error\\ErrorPageRenderer',
- 4 => 'Firefly\\Web\\Exception\\ProblemDetailsRenderer',
- ),
- ),
- 22 =>
- array (
- 'method' => 'sessionCsrf',
- 'returns' => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Illuminate\\Container\\Container',
- ),
- ),
- 23 =>
- array (
- 'method' => 'jwtService',
- 'returns' => 'Firefly\\Security\\Jwt\\JwtService',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 24 =>
- array (
- 'method' => 'httpSecurity',
- 'returns' => 'Firefly\\Security\\Access\\HttpSecurity',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
- 25 =>
- array (
- 'method' => 'jwksProvider',
- 'returns' => 'Firefly\\Security\\OAuth2\\JwksProvider',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
+ 'order' => -95,
+ 'qualifier' => null,
+ 'interfaces' => [
+ 0 => 'Firefly\\Web\\Filter\\WebFilter',
+ ],
+ 'beans' => [
+ ],
'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- 1 => 'Illuminate\\Container\\Container',
- ),
- ),
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- ),
- ),
- 5 =>
- array (
- 'class' => 'Firefly\\Security\\Session\\SecurityContextPersistenceFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -94,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Session\\SecurityContextRepository',
- 1 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
- 2 => 'Firefly\\Config\\Config',
- ),
- ),
- 6 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Basic\\HttpBasicFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -91,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
- 1 => 'Firefly\\Security\\Authentication\\AuthenticationManager',
- 2 => 'Firefly\\Security\\Web\\EntryPoint\\BasicAuthenticationEntryPoint',
- 3 => 'Firefly\\Security\\Session\\SecurityContextRepository',
- 4 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
- 5 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- 6 => 'Firefly\\Config\\Config',
- ),
- ),
- 7 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\CsrfFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -80,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- 1 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
- ),
- ),
- 8 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\HttpSecurityFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -70,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Access\\HttpSecurity',
- 1 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
- 2 => 'Firefly\\Security\\Access\\RoleHierarchy',
- 3 => 'Firefly\\Security\\Access\\PermissionEvaluator',
- 4 => 'Firefly\\Config\\Config',
- 5 => 'Firefly\\Security\\Web\\EntryPoint\\AuthenticationEntryPoint',
- 6 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
- 7 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- ),
- ),
- 9 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\JwtAuthenticationFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -90,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Jwt\\JwtService',
- 1 => 'Firefly\\Config\\Config',
- ),
- ),
- 10 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Login\\FormLoginFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -92,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
- 1 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
- 2 => 'Firefly\\Security\\Authentication\\AuthenticationManager',
- 3 => 'Firefly\\Security\\Session\\SecurityContextRepository',
- 4 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- 5 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
- 6 => 'Illuminate\\Container\\Container',
- 7 => 'Firefly\\Config\\Config',
- 8 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
- ),
- ),
- 11 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -93,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
- 1 => 'Firefly\\Security\\Web\\Logout\\LogoutHandler',
- 2 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
- 3 => 'Illuminate\\Container\\Container',
- 4 => 'Firefly\\Config\\Config',
- 5 => 'Firefly\\Security\\Web\\Logout\\LogoutSuccessHandler',
- ),
- ),
- 12 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutHandler',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => 0,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
- 1 => 'Firefly\\Security\\Session\\SecurityContextRepository',
- 2 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- 3 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
- ),
- ),
- 13 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\RememberMe\\RememberMeAuthenticationFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -83,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Security\\Session\\SecurityContextRepository',
- 1 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
- 2 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- 3 => 'Firefly\\Config\\Config',
- 4 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
- ),
- ),
- 14 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\SecurityHeadersFilter',
- 'stereotype' => 'component',
- 'name' => NULL,
- 'scope' => 'Singleton',
- 'primary' => false,
- 'order' => -95,
- 'qualifier' => NULL,
- 'interfaces' =>
- array (
- 0 => 'Firefly\\Web\\Filter\\WebFilter',
- ),
- 'beans' =>
- array (
- ),
- 'lazy' => false,
- 'dependencies' =>
- array (
- 0 => 'Firefly\\Config\\Config',
- ),
- ),
-);
+ 'dependencies' => [
+ 0 => 'Firefly\\Config\\Config',
+ ],
+ ],
+];
diff --git a/packages/security/cache/firefly-security-context.php b/packages/security/cache/firefly-security-context.php
index 12550d58..14ea7ede 100644
--- a/packages/security/cache/firefly-security-context.php
+++ b/packages/security/cache/firefly-security-context.php
@@ -4,1132 +4,848 @@
// Generated by firefly/context. Do not edit.
-return array (
- 0 =>
- array (
- 'class' => 'Firefly\\Security\\Actuator\\SecurityActuatorAutoConfiguration',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnClass',
- 'args' =>
- array (
- 0 => 'Firefly\\Actuator\\Health\\HealthDetailsAuthorizer',
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- 0 =>
- array (
- 'method' => 'healthDetailsAuthorizer',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Actuator\\Health\\HealthDetailsAuthorizer',
- ),
- ),
- ),
- ),
- ),
- ),
- 1 =>
- array (
- 'class' => 'Firefly\\Security\\OAuth2\\OAuth2ResourceServerFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.oauth2.resource_server.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 2 =>
- array (
- 'class' => 'Firefly\\Security\\OpenApi\\MethodSecurityRequirementContributor',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnClass',
- 'args' =>
- array (
- 0 => 'Firefly\\OpenApi\\Security\\SecurityRequirementContributor',
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 3 =>
- array (
- 'class' => 'Firefly\\Security\\SecurityAutoConfiguration',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- ),
- 'beanConditions' =>
- array (
- 0 =>
- array (
- 'method' => 'passwordEncoder',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Password\\PasswordEncoder',
- ),
- ),
- ),
- ),
- 1 =>
- array (
- 'method' => 'userDetailsService',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\User\\UserDetailsService',
- ),
- ),
- ),
- ),
- 2 =>
- array (
- 'method' => 'roleHierarchy',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Access\\RoleHierarchy',
- ),
- ),
- ),
- ),
- 3 =>
- array (
- 'method' => 'permissionEvaluator',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Access\\PermissionEvaluator',
- ),
- ),
- ),
- ),
- 4 =>
- array (
- 'method' => 'securityExpressionEvaluator',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
- ),
- ),
- ),
- ),
- 5 =>
- array (
- 'method' => 'authenticationManager',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Authentication\\AuthenticationManager',
- ),
- ),
- ),
- ),
- 6 =>
- array (
- 'method' => 'authorizationChecker',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Access\\AuthorizationChecker',
- ),
- ),
- ),
- ),
- 7 =>
- array (
- 'method' => 'methodSecurityEvaluator',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Access\\Method\\MethodSecurityEvaluator',
- ),
- ),
- ),
- ),
- 8 =>
- array (
- 'method' => 'methodSecurityInterceptor',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.method.enabled',
- 1 => 'true',
- 2 => true,
- ),
- ),
- 2 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Access\\Method\\MethodSecurityInterceptor',
- ),
- ),
- ),
- ),
- 9 =>
- array (
- 'method' => 'methodSecurityMessageEnforcer',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
- ),
- ),
- ),
- ),
- 10 =>
- array (
- 'method' => 'commandAuthorizer',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Cqrs\\Security\\CommandAuthorizer',
- ),
- ),
- ),
- ),
- 11 =>
- array (
- 'method' => 'queryAuthorizer',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Cqrs\\Security\\QueryAuthorizer',
- ),
- ),
- ),
- ),
- 12 =>
- array (
- 'method' => 'auditorAware',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Data\\Repository\\Auditing\\AuditorAware',
- ),
- ),
- ),
- ),
- 13 =>
- array (
- 'method' => 'authenticationEventPublisher',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
- ),
- ),
- ),
- ),
- 14 =>
- array (
- 'method' => 'sessionSecuritySettings',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
- ),
- ),
- ),
- ),
- 15 =>
- array (
- 'method' => 'securityContextRepository',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Session\\SecurityContextRepository',
- ),
- ),
- ),
- ),
- 16 =>
- array (
- 'method' => 'formLoginSettings',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
- ),
- ),
- ),
- ),
- 17 =>
- array (
- 'method' => 'httpBasicSettings',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
- ),
- ),
- ),
- ),
- 18 =>
- array (
- 'method' => 'logoutSettings',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
- ),
- ),
- ),
- ),
- 19 =>
- array (
- 'method' => 'rememberMeSettings',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Settings\\RememberMeSettings',
- ),
- ),
- ),
- ),
- 20 =>
- array (
- 'method' => 'rememberMeServices',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.remember_me.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 2 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
- ),
- ),
- ),
- ),
- 21 =>
- array (
- 'method' => 'authenticationEntryPoint',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.http.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 2 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Web\\EntryPoint\\AuthenticationEntryPoint',
- ),
- ),
- ),
- ),
- 22 =>
- array (
- 'method' => 'sessionCsrf',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
- ),
- ),
- ),
- ),
- 23 =>
- array (
- 'method' => 'jwtService',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.jwt.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Jwt\\JwtService',
- ),
- ),
- ),
- ),
- 24 =>
- array (
- 'method' => 'httpSecurity',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.http.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\Access\\HttpSecurity',
- ),
- ),
- ),
- ),
- 25 =>
- array (
- 'method' => 'jwksProvider',
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.oauth2.resource_server.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
- 'args' =>
- array (
- 0 => 'Firefly\\Security\\OAuth2\\JwksProvider',
- ),
- ),
- ),
- ),
- ),
- ),
- 4 =>
- array (
- 'class' => 'Firefly\\Security\\Session\\SecurityContextPersistenceFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 5 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Basic\\HttpBasicFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.http_basic.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 6 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\CsrfFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.csrf.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 7 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\HttpSecurityFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.http.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 8 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\JwtAuthenticationFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.jwt.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 9 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Login\\FormLoginFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- 1 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.form_login.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 10 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 11 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutHandler',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 12 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\RememberMe\\RememberMeAuthenticationFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
- 13 =>
- array (
- 'class' => 'Firefly\\Security\\Web\\SecurityHeadersFilter',
- 'postConstruct' =>
- array (
- ),
- 'preDestroy' =>
- array (
- ),
- 'listeners' =>
- array (
- ),
- 'conditions' =>
- array (
- 0 =>
- array (
- 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
- 'args' =>
- array (
- 0 => 'firefly.security.headers.enabled',
- 1 => 'true',
- 2 => false,
- ),
- ),
- ),
- 'beanConditions' =>
- array (
- ),
- ),
-);
+return [
+ 0 => [
+ 'class' => 'Firefly\\Security\\Actuator\\SecurityActuatorAutoConfiguration',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnClass',
+ 'args' => [
+ 0 => 'Firefly\\Actuator\\Health\\HealthDetailsAuthorizer',
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ 0 => [
+ 'method' => 'healthDetailsAuthorizer',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Actuator\\Health\\HealthDetailsAuthorizer',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 1 => [
+ 'class' => 'Firefly\\Security\\OAuth2\\OAuth2ResourceServerFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.oauth2.resource_server.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 2 => [
+ 'class' => 'Firefly\\Security\\OpenApi\\MethodSecurityRequirementContributor',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnClass',
+ 'args' => [
+ 0 => 'Firefly\\OpenApi\\Security\\SecurityRequirementContributor',
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 3 => [
+ 'class' => 'Firefly\\Security\\SecurityAutoConfiguration',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ ],
+ 'beanConditions' => [
+ 0 => [
+ 'method' => 'passwordEncoder',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Password\\PasswordEncoder',
+ ],
+ ],
+ ],
+ ],
+ 1 => [
+ 'method' => 'userDetailsService',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\User\\UserDetailsService',
+ ],
+ ],
+ ],
+ ],
+ 2 => [
+ 'method' => 'roleHierarchy',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Access\\RoleHierarchy',
+ ],
+ ],
+ ],
+ ],
+ 3 => [
+ 'method' => 'permissionEvaluator',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Access\\PermissionEvaluator',
+ ],
+ ],
+ ],
+ ],
+ 4 => [
+ 'method' => 'securityExpressionEvaluator',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Access\\Expression\\SecurityExpressionEvaluator',
+ ],
+ ],
+ ],
+ ],
+ 5 => [
+ 'method' => 'authenticationManager',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Authentication\\AuthenticationManager',
+ ],
+ ],
+ ],
+ ],
+ 6 => [
+ 'method' => 'authorizationChecker',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Access\\AuthorizationChecker',
+ ],
+ ],
+ ],
+ ],
+ 7 => [
+ 'method' => 'methodSecurityEvaluator',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Access\\Method\\MethodSecurityEvaluator',
+ ],
+ ],
+ ],
+ ],
+ 8 => [
+ 'method' => 'methodSecurityInterceptor',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.method.enabled',
+ 1 => 'true',
+ 2 => true,
+ ],
+ ],
+ 2 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Access\\Method\\MethodSecurityInterceptor',
+ ],
+ ],
+ ],
+ ],
+ 9 => [
+ 'method' => 'methodSecurityMessageEnforcer',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Cqrs\\MethodSecurityMessageEnforcer',
+ ],
+ ],
+ ],
+ ],
+ 10 => [
+ 'method' => 'commandAuthorizer',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Cqrs\\Security\\CommandAuthorizer',
+ ],
+ ],
+ ],
+ ],
+ 11 => [
+ 'method' => 'queryAuthorizer',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Cqrs\\Security\\QueryAuthorizer',
+ ],
+ ],
+ ],
+ ],
+ 12 => [
+ 'method' => 'auditorAware',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Data\\Repository\\Auditing\\AuditorAware',
+ ],
+ ],
+ ],
+ ],
+ 13 => [
+ 'method' => 'authenticationEventPublisher',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Event\\AuthenticationEventPublisher',
+ ],
+ ],
+ ],
+ ],
+ 14 => [
+ 'method' => 'sessionSecuritySettings',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Session\\SessionSecuritySettings',
+ ],
+ ],
+ ],
+ ],
+ 15 => [
+ 'method' => 'securityContextRepository',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Session\\SecurityContextRepository',
+ ],
+ ],
+ ],
+ ],
+ 16 => [
+ 'method' => 'formLoginSettings',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\FormLoginSettings',
+ ],
+ ],
+ ],
+ ],
+ 17 => [
+ 'method' => 'httpBasicSettings',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\HttpBasicSettings',
+ ],
+ ],
+ ],
+ ],
+ 18 => [
+ 'method' => 'logoutSettings',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\LogoutSettings',
+ ],
+ ],
+ ],
+ ],
+ 19 => [
+ 'method' => 'rememberMeSettings',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Web\\Settings\\RememberMeSettings',
+ ],
+ ],
+ ],
+ ],
+ 20 => [
+ 'method' => 'rememberMeServices',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.remember_me.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 2 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Web\\RememberMe\\RememberMeServices',
+ ],
+ ],
+ ],
+ ],
+ 21 => [
+ 'method' => 'authenticationEntryPoint',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.http.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 2 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Web\\EntryPoint\\AuthenticationEntryPoint',
+ ],
+ ],
+ ],
+ ],
+ 22 => [
+ 'method' => 'sessionCsrf',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Web\\Csrf\\SessionCsrf',
+ ],
+ ],
+ ],
+ ],
+ 23 => [
+ 'method' => 'jwtService',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.jwt.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Jwt\\JwtService',
+ ],
+ ],
+ ],
+ ],
+ 24 => [
+ 'method' => 'httpSecurity',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.http.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\Access\\HttpSecurity',
+ ],
+ ],
+ ],
+ ],
+ 25 => [
+ 'method' => 'jwksProvider',
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.oauth2.resource_server.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnMissingBean',
+ 'args' => [
+ 0 => 'Firefly\\Security\\OAuth2\\JwksProvider',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 4 => [
+ 'class' => 'Firefly\\Security\\Session\\SecurityContextPersistenceFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 5 => [
+ 'class' => 'Firefly\\Security\\Web\\Basic\\HttpBasicFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.http_basic.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 6 => [
+ 'class' => 'Firefly\\Security\\Web\\CsrfFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.csrf.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 7 => [
+ 'class' => 'Firefly\\Security\\Web\\HttpSecurityFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.http.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 8 => [
+ 'class' => 'Firefly\\Security\\Web\\JwtAuthenticationFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.jwt.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 9 => [
+ 'class' => 'Firefly\\Security\\Web\\Login\\FormLoginFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ 1 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.form_login.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 10 => [
+ 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 11 => [
+ 'class' => 'Firefly\\Security\\Web\\Logout\\LogoutHandler',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 12 => [
+ 'class' => 'Firefly\\Security\\Web\\RememberMe\\RememberMeAuthenticationFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+ 13 => [
+ 'class' => 'Firefly\\Security\\Web\\SecurityHeadersFilter',
+ 'postConstruct' => [
+ ],
+ 'preDestroy' => [
+ ],
+ 'listeners' => [
+ ],
+ 'conditions' => [
+ 0 => [
+ 'type' => 'Firefly\\Context\\Condition\\Attributes\\ConditionalOnProperty',
+ 'args' => [
+ 0 => 'firefly.security.headers.enabled',
+ 1 => 'true',
+ 2 => false,
+ ],
+ ],
+ ],
+ 'beanConditions' => [
+ ],
+ ],
+];
diff --git a/packages/security/src/SecurityAutoConfiguration.php b/packages/security/src/SecurityAutoConfiguration.php
index b409d3ef..dc8cb393 100644
--- a/packages/security/src/SecurityAutoConfiguration.php
+++ b/packages/security/src/SecurityAutoConfiguration.php
@@ -6,8 +6,8 @@
use Firefly\Config\Config;
use Firefly\Container\Attributes\Bean;
-use Firefly\Container\Attributes\Lazy;
use Firefly\Container\Attributes\Configuration;
+use Firefly\Container\Attributes\Lazy;
use Firefly\Container\Attributes\Order;
use Firefly\Context\Condition\Attributes\ConditionalOnMissingBean;
use Firefly\Context\Condition\Attributes\ConditionalOnProperty;
diff --git a/packages/security/tests/OAuth2/InMemoryJwksProviderTest.php b/packages/security/tests/OAuth2/InMemoryJwksProviderTest.php
index f80b7038..8fa10830 100644
--- a/packages/security/tests/OAuth2/InMemoryJwksProviderTest.php
+++ b/packages/security/tests/OAuth2/InMemoryJwksProviderTest.php
@@ -13,6 +13,9 @@
* validate a single token from the identity provider most applications use. The fixtures below are
* that shape.
*/
+/**
+ * @return array one JWKS key, `alg` present or absent
+ */
function jwksKeyWithout(?string $alg): array
{
// A real RSA public key's components; only `alg` varies between the cases.