Skip to content

Commit

Permalink
Updated according to the feature modifications
Browse files Browse the repository at this point in the history
Instead of multiple User Checkers, only 1 is configured
  • Loading branch information
Iltar van der Berg committed Oct 1, 2015
1 parent 2a85e4f commit d070f5b
Showing 1 changed file with 19 additions and 22 deletions.
41 changes: 19 additions & 22 deletions cookbook/security/user_checkers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ How to Create and Enable Custom User Checkers
=============================================

During the authentication of a user, additional checks might be required to verify
if the identified user is allowed to log in. By defining custom user checkers, you
can define per firewall which checkers should be used.
if the identified user is allowed to log in. By defining a custom user checker, you
can define per firewall which checker should be used.

.. versionadded:: 2.8
Adding custom user checkers was introduced in Symfony 2.8.
Defining a custom user checker was introduced in Symfony 2.8.


Creating a Custom User Checker
Expand Down Expand Up @@ -80,8 +80,7 @@ other service:
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="app.user_checker" class="App\Security\UserChecker">
</service>
<service id="app.user_checker" class="App\Security\UserChecker" />
</services>
</container>
Expand All @@ -107,7 +106,7 @@ is the service id of your user checker:
firewalls:
secured_area:
pattern: ^/
user_checkers: ["app.user_checker"]
user_checker: app.user_checker
# ...
.. code-block:: xml
Expand All @@ -123,7 +122,7 @@ is the service id of your user checker:
<config>
<!-- ... -->
<firewall name="secured_area" pattern="^/">
<user-checkers>app.user_checker</user-checkers>
<user-checker>app.user_checker</user-checker>
<!-- ... -->
</firewall>
</config>
Expand All @@ -138,7 +137,7 @@ is the service id of your user checker:
'firewalls' => array(
'secured_area' => array(
'pattern' => '^/',
'user_checkers' => array('app.user_checker'),
'user_checker' => 'app.user_checker',
// ...
),
),
Expand All @@ -148,10 +147,7 @@ is the service id of your user checker:
Additional Configurations
-------------------------

It's possible to add multiple user checkers to one firewall while
configuring only one user checker for another firewall. When adding
multiple user checkers, they are executed in the same sequence as
defined in your configuration.
It's possible to have a different user checker per firewall.

.. configuration-block::

Expand All @@ -164,11 +160,11 @@ defined in your configuration.
firewalls:
admin:
pattern: ^/admin
user_checkers: ["app.user_checker", "app.admin_checker"]
user_checker: app.admin_user_checker
# ...
secured_area:
pattern: ^/
user_checkers: ["app.user_checker"]
user_checker: app.user_checker
.. code-block:: xml
Expand All @@ -183,12 +179,11 @@ defined in your configuration.
<config>
<!-- ... -->
<firewall name="admin" pattern="^/admin">
<user-checkers>app.user_checker</user-checkers>
<user-checkers>app.admin_checker</user-checkers>
<user-checker>app.admin_user_checker</user-checker>
<!-- ... -->
</firewall>
<firewall name="secured_area" pattern="^/">
<user-checkers>app.user_checker</user-checkers>
<user-checker>app.user_checker</user-checker>
<!-- ... -->
</firewall>
</config>
Expand All @@ -203,16 +198,18 @@ defined in your configuration.
'firewalls' => array(
'admin' => array(
'pattern' => '^/admin',
'user_checkers' => array(
'app.user_checker',
'app.admin_checker',
),
'user_checkers' => 'app.admin_user_checker'
// ...
),
'secured_area' => array(
'pattern' => '^/',
'user_checkers' => array('app.user_checker'),
'user_checker' => 'app.user_checker',
// ...
),
),
));
.. note::

Internally the user checkers are aliased per firewall. For `secured_area` the alias
`security.user_checker.secured_area` would point to `app.user_checker`.

0 comments on commit d070f5b

Please sign in to comment.