diff --git a/src/Silex/Provider/SecurityServiceProvider.php b/src/Silex/Provider/SecurityServiceProvider.php index 57e93f6ae..aefe018dc 100644 --- a/src/Silex/Provider/SecurityServiceProvider.php +++ b/src/Silex/Provider/SecurityServiceProvider.php @@ -334,8 +334,17 @@ public function register(Container $app) foreach ($app['security.access_rules'] as $rule) { if (is_string($rule[0])) { $rule[0] = new RequestMatcher($rule[0]); + } elseif (is_array($rule[0])) { + $rule[0] += [ + 'path' => null, + 'host' => null, + 'methods' => null, + 'ips' => null, + 'attributes' => null, + 'schemes' => null, + ]; + $rule[0] = new RequestMatcher($rule[0]['path'], $rule[0]['host'], $rule[0]['methods'], $rule[0]['ips'], $rule[0]['attributes'], $rule[0]['schemes']); } - $map->add($rule[0], (array) $rule[1], isset($rule[2]) ? $rule[2] : null); }