Make it possible to match the request based on HTTP methods in the firewall configuration
This commit is contained in:
parent
f0c0c2c99d
commit
a8e9ed5cf1
@ -201,6 +201,10 @@ class MainConfiguration implements ConfigurationInterface
|
||||
$firewallNodeBuilder
|
||||
->scalarNode('pattern')->end()
|
||||
->scalarNode('host')->end()
|
||||
->arrayNode('methods')
|
||||
->beforeNormalization()->ifString()->then(function ($v) { return preg_split('/\s*,\s*/', $v); })->end()
|
||||
->prototype('scalar')->end()
|
||||
->end()
|
||||
->booleanNode('security')->defaultTrue()->end()
|
||||
->scalarNode('request_matcher')->end()
|
||||
->scalarNode('access_denied_url')->end()
|
||||
|
@ -254,7 +254,8 @@ class SecurityExtension extends Extension
|
||||
} elseif (isset($firewall['pattern']) || isset($firewall['host'])) {
|
||||
$pattern = isset($firewall['pattern']) ? $firewall['pattern'] : null;
|
||||
$host = isset($firewall['host']) ? $firewall['host'] : null;
|
||||
$matcher = $this->createRequestMatcher($container, $pattern, $host);
|
||||
$methods = isset($firewall['methods']) ? $firewall['methods'] : array();
|
||||
$matcher = $this->createRequestMatcher($container, $pattern, $host, $methods);
|
||||
}
|
||||
|
||||
// Security disabled?
|
||||
|
@ -117,6 +117,7 @@ abstract class CompleteConfigurationTest extends \PHPUnit_Framework_TestCase
|
||||
array(
|
||||
'/test',
|
||||
'foo\\.example\\.org',
|
||||
array('GET', 'POST'),
|
||||
),
|
||||
), $matchers);
|
||||
}
|
||||
|
@ -74,6 +74,7 @@ $container->loadFromExtension('security', array(
|
||||
'host' => array(
|
||||
'pattern' => '/test',
|
||||
'host' => 'foo\\.example\\.org',
|
||||
'methods' => array('GET', 'POST'),
|
||||
'anonymous' => true,
|
||||
'http_basic' => true,
|
||||
),
|
||||
|
@ -57,7 +57,7 @@
|
||||
<logout />
|
||||
</firewall>
|
||||
|
||||
<firewall name="host" pattern="/test" host="foo\.example\.org">
|
||||
<firewall name="host" pattern="/test" host="foo\.example\.org" methods="GET,POST">
|
||||
<anonymous />
|
||||
<http-basic />
|
||||
</firewall>
|
||||
|
@ -56,6 +56,7 @@ security:
|
||||
host:
|
||||
pattern: /test
|
||||
host: foo\.example\.org
|
||||
methods: [GET,POST]
|
||||
anonymous: true
|
||||
http_basic: true
|
||||
|
||||
|
Reference in New Issue
Block a user