From 1e8236cfb383e33e8ad8fc97f39b8da69db57972 Mon Sep 17 00:00:00 2001 From: Kris Wallsmith Date: Wed, 15 Feb 2012 14:08:39 -0800 Subject: [PATCH 1/2] [Security] added AccessMapInterface --- .../Component/Security/Http/AccessMap.php | 2 +- .../Security/Http/AccessMapInterface.php | 33 +++++++++++++++++++ .../Security/Http/Firewall/AccessListener.php | 4 +-- .../Http/Firewall/ChannelListener.php | 4 +-- .../Http/Firewall/AccessListenerTest.php | 8 ++--- .../Http/Firewall/ChannelListenerTest.php | 8 ++--- 6 files changed, 46 insertions(+), 13 deletions(-) create mode 100644 src/Symfony/Component/Security/Http/AccessMapInterface.php diff --git a/src/Symfony/Component/Security/Http/AccessMap.php b/src/Symfony/Component/Security/Http/AccessMap.php index 6d12b42270..de78e15a55 100644 --- a/src/Symfony/Component/Security/Http/AccessMap.php +++ b/src/Symfony/Component/Security/Http/AccessMap.php @@ -20,7 +20,7 @@ use Symfony\Component\HttpFoundation\Request; * * @author Fabien Potencier */ -class AccessMap +class AccessMap implements AccessMapInterface { private $map = array(); diff --git a/src/Symfony/Component/Security/Http/AccessMapInterface.php b/src/Symfony/Component/Security/Http/AccessMapInterface.php new file mode 100644 index 0000000000..dbd7282540 --- /dev/null +++ b/src/Symfony/Component/Security/Http/AccessMapInterface.php @@ -0,0 +1,33 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Security\Http; + +use Symfony\Component\HttpFoundation\Request; + +/** + * AccessMap allows configuration of different access control rules for + * specific parts of the website. + * + * @author Fabien Potencier + * @author Kris Wallsmith + */ +interface AccessMapInterface +{ + /** + * Returns security attributes and required channel for the supplied request. + * + * @param Request $request The current request + * + * @return array A tuple of security attributes and the required channel + */ + function getPatterns(Request $request); +} diff --git a/src/Symfony/Component/Security/Http/Firewall/AccessListener.php b/src/Symfony/Component/Security/Http/Firewall/AccessListener.php index 877b6c353a..3e2d3a5329 100644 --- a/src/Symfony/Component/Security/Http/Firewall/AccessListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/AccessListener.php @@ -13,7 +13,7 @@ namespace Symfony\Component\Security\Http\Firewall; use Symfony\Component\Security\Core\SecurityContextInterface; use Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface; -use Symfony\Component\Security\Http\AccessMap; +use Symfony\Component\Security\Http\AccessMapInterface; use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface; use Symfony\Component\HttpKernel\Log\LoggerInterface; use Symfony\Component\HttpKernel\Event\GetResponseEvent; @@ -33,7 +33,7 @@ class AccessListener implements ListenerInterface private $authManager; private $logger; - public function __construct(SecurityContextInterface $context, AccessDecisionManagerInterface $accessDecisionManager, AccessMap $map, AuthenticationManagerInterface $authManager, LoggerInterface $logger = null) + public function __construct(SecurityContextInterface $context, AccessDecisionManagerInterface $accessDecisionManager, AccessMapInterface $map, AuthenticationManagerInterface $authManager, LoggerInterface $logger = null) { $this->context = $context; $this->accessDecisionManager = $accessDecisionManager; diff --git a/src/Symfony/Component/Security/Http/Firewall/ChannelListener.php b/src/Symfony/Component/Security/Http/Firewall/ChannelListener.php index 847753f032..9b0f8c63db 100644 --- a/src/Symfony/Component/Security/Http/Firewall/ChannelListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/ChannelListener.php @@ -11,7 +11,7 @@ namespace Symfony\Component\Security\Http\Firewall; -use Symfony\Component\Security\Http\AccessMap; +use Symfony\Component\Security\Http\AccessMapInterface; use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface; use Symfony\Component\HttpKernel\Log\LoggerInterface; use Symfony\Component\HttpKernel\Event\GetResponseEvent; @@ -28,7 +28,7 @@ class ChannelListener implements ListenerInterface private $authenticationEntryPoint; private $logger; - public function __construct(AccessMap $map, AuthenticationEntryPointInterface $authenticationEntryPoint, LoggerInterface $logger = null) + public function __construct(AccessMapInterface $map, AuthenticationEntryPointInterface $authenticationEntryPoint, LoggerInterface $logger = null) { $this->map = $map; $this->authenticationEntryPoint = $authenticationEntryPoint; diff --git a/tests/Symfony/Tests/Component/Security/Http/Firewall/AccessListenerTest.php b/tests/Symfony/Tests/Component/Security/Http/Firewall/AccessListenerTest.php index df369d064b..4736f32088 100644 --- a/tests/Symfony/Tests/Component/Security/Http/Firewall/AccessListenerTest.php +++ b/tests/Symfony/Tests/Component/Security/Http/Firewall/AccessListenerTest.php @@ -13,7 +13,7 @@ class AccessListenerTest extends \PHPUnit_Framework_TestCase { $request = $this->getMock('Symfony\Component\HttpFoundation\Request', array(), array(), '', false, false); - $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMap'); + $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'); $accessMap ->expects($this->any()) ->method('getPatterns') @@ -64,7 +64,7 @@ class AccessListenerTest extends \PHPUnit_Framework_TestCase { $request = $this->getMock('Symfony\Component\HttpFoundation\Request', array(), array(), '', false, false); - $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMap'); + $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'); $accessMap ->expects($this->any()) ->method('getPatterns') @@ -135,7 +135,7 @@ class AccessListenerTest extends \PHPUnit_Framework_TestCase { $request = $this->getMock('Symfony\Component\HttpFoundation\Request', array(), array(), '', false, false); - $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMap'); + $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'); $accessMap ->expects($this->any()) ->method('getPatterns') @@ -188,7 +188,7 @@ class AccessListenerTest extends \PHPUnit_Framework_TestCase $listener = new AccessListener( $context, $this->getMock('Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface'), - $this->getMock('Symfony\Component\Security\Http\AccessMap'), + $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'), $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface') ); diff --git a/tests/Symfony/Tests/Component/Security/Http/Firewall/ChannelListenerTest.php b/tests/Symfony/Tests/Component/Security/Http/Firewall/ChannelListenerTest.php index fafdba6c6d..1f45f61e53 100644 --- a/tests/Symfony/Tests/Component/Security/Http/Firewall/ChannelListenerTest.php +++ b/tests/Symfony/Tests/Component/Security/Http/Firewall/ChannelListenerTest.php @@ -17,7 +17,7 @@ class ChannelListenerTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue(false)) ; - $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMap'); + $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'); $accessMap ->expects($this->any()) ->method('getPatterns') @@ -55,7 +55,7 @@ class ChannelListenerTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue(true)) ; - $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMap'); + $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'); $accessMap ->expects($this->any()) ->method('getPatterns') @@ -95,7 +95,7 @@ class ChannelListenerTest extends \PHPUnit_Framework_TestCase $response = new Response(); - $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMap'); + $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'); $accessMap ->expects($this->any()) ->method('getPatterns') @@ -138,7 +138,7 @@ class ChannelListenerTest extends \PHPUnit_Framework_TestCase $response = new Response(); - $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMap'); + $accessMap = $this->getMock('Symfony\Component\Security\Http\AccessMapInterface'); $accessMap ->expects($this->any()) ->method('getPatterns') From eb7aa1bf78dc3adac23ddc4d854a70106f520c11 Mon Sep 17 00:00:00 2001 From: Kris Wallsmith Date: Wed, 15 Feb 2012 14:08:52 -0800 Subject: [PATCH 2/2] [SecurityBundle] added interface to compiler --- .../SecurityBundle/DependencyInjection/SecurityExtension.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index bf13395365..728840a090 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -171,6 +171,7 @@ class SecurityExtension extends Extension } $this->addClassesToCompile(array( + 'Symfony\\Component\\Security\\Http\\AccessMapInterface', 'Symfony\\Component\\Security\\Http\\AccessMap', ));