8000 Added the documentation for the success/failure handlers by javiereguiluz · Pull Request #6556 · symfony/symfony-docs · GitHub
[go: up one dir, main page]

Skip to content

Added the documentation for the success/failure handlers #6556

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 6 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added all the configuration formats
  • Loading branch information
javiereguiluz committed May 21, 2016
commit 362a09fad2f84f034ba67fb7a509942a9b247c48
143 changes: 122 additions & 21 deletions cookbook/security/login_handlers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,25 +41,88 @@ and add your own logic::

Then, define a new service for this login handler:

.. code-block:: yaml
.. configuration-block::

# app/config/services.yml
services:
app.security.success_login:
class: AppBundle\Security\SuccesfulLoginHandler
.. code-block:: yaml

# app/config/services.yml
services:
app.security.success_login:
class: AppBundle\Security\SuccesfulLoginHandler

.. code-block:: xml

<!-- src/AppBundle/Resources/config/services.xml -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

app/config/services.xml

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch! Damn copy+paste :( Fixed.

<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

<services>
<service id="app.security.success_login"
class="AppBundle\Security\SuccesfulLoginHandler">
</service>
</services>
</container>

.. code-block:: php

// src/AppBundle/Resources/config/services.php
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

app/config/services.php

$container->register(
'app.security.success_login',
'AppBundle\Security\SuccesfulLoginHandler'
);

Lastly, add a new ``success_handler`` option under the configuration of the
firewalls where this handler will be enabled and pass the ``id`` of the service
as its value:

.. code-block:: yaml

# app/config/security.yml
firewalls:
main:
pattern: ^/
form_login:
success_handler: app.security.successful_login
.. configuration-block::

.. code-block:: yaml

# app/config/security.yml
security:
# ...
firewalls:
main:
# ...
form_login:
success_handler: app.security.successful_login

.. code-block:: xml

<!-- app/config/security.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<srv:container xmlns="http://symfony.com/schema/dic/security"
xmlns:srv="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services
http://symfony.com/schema/dic/services/services-1.0.xsd">

<config>
<!-- ... -->
<firewall name="main">
<!-- ... -->
<form-login success-handler="app.security.successful_login" />
</firewall>
</config>
</srv:container>

.. code-block:: php

// app/config/security.php
$container->loadFromExtension('security', array(
// ...
'firewalls' => array(
'main' => array(
// ...
'form_login' => array(
'success_handler' => 'app.security.successful_login',
),
),
),
));

Creating a Failure Login Handler
--------------------------------
Expand All @@ -70,14 +133,52 @@ First, define your own logic in a class that implements
and create a new service for it. Then, add the ``failure_handler`` configuration
option in your firewall:

.. code-block:: yaml

# app/config/security.yml
firewalls:
main:
pattern: ^/
form_login:
failure_handler: app.security.failure_login
.. configuration-block::

.. code-block:: yaml

# app/config/security.yml
security:
# ...
firewalls:
main:
# ...
form_login:
failure_handler: app.security.failure_login

.. code-block:: xml

<!-- app/config/security.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<srv:container xmlns="http://symfony.com/schema/dic/security"
xmlns:srv="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services
http://symfony.com/schema/dic/services/services-1.0.xsd">

<config>
<!-- ... -->
<firewall name="main">
<!-- ... -->
<form-login failure-handler="app.security.failure_login" />
</firewall>
</config>
</srv:container>

.. code-block:: php

// app/config/security.php
$container->loadFromExtension('security', array(
// ...
'firewalls' => array(
'main' => array(
// ...
'form_login' => array(
'failure_handler' => 'app.security.failure_login',
),
),
),
));

When Should Login Handlers Be Used?
-----------------------------------
Expand Down
0