@@ -438,7 +438,7 @@ Next, create the controller that will display the login form::
438438
439439 use Symfony\Bundle\FrameworkBundle\Controller\Controller;
440440 use Symfony\Component\HttpFoundation\Request;
441- use Symfony\Component\Security\Core\SecurityContextInterface ;
441+ use Symfony\Component\Security\Core\Security ;
442442
443443 class SecurityController extends Controller
444444 {
@@ -447,19 +447,19 @@ Next, create the controller that will display the login form::
447447 $session = $request->getSession();
448448
449449 // get the login error if there is one
450- if ($request->attributes->has(SecurityContextInterface ::AUTHENTICATION_ERROR)) {
450+ if ($request->attributes->has(Security ::AUTHENTICATION_ERROR)) {
451451 $error = $request->attributes->get(
452- SecurityContextInterface ::AUTHENTICATION_ERROR
452+ Security ::AUTHENTICATION_ERROR
453453 );
454- } elseif (null !== $session && $session->has(SecurityContextInterface ::AUTHENTICATION_ERROR)) {
455- $error = $session->get(SecurityContextInterface ::AUTHENTICATION_ERROR);
456- $session->remove(SecurityContextInterface ::AUTHENTICATION_ERROR);
454+ } elseif (null !== $session && $session->has(Security ::AUTHENTICATION_ERROR)) {
455+ $error = $session->get(Security ::AUTHENTICATION_ERROR);
456+ $session->remove(Security ::AUTHENTICATION_ERROR);
457457 } else {
458458 $error = '';
459459 }
460460
461461 // last username entered by the user
462- $lastUsername = (null === $session) ? '' : $session->get(SecurityContextInterface ::LAST_USERNAME);
462+ $lastUsername = (null === $session) ? '' : $session->get(Security ::LAST_USERNAME);
463463
464464 return $this->render(
465465 'AcmeSecurityBundle:Security:login.html.twig',
@@ -713,7 +713,7 @@ see :doc:`/cookbook/security/form_login`.
713713 ``/login_check `` doesn't match any firewall, you'll receive a ``Unable
714714 to find the controller for path "/login_check" `` exception.
715715
716- **4. Multiple firewalls don't share security context **
716+ **4. Multiple firewalls don't sharethe same security context **
717717
718718 If you're using multiple firewalls and you authenticate against one firewall,
719719 you will *not * be authenticated against any other firewalls automatically.
@@ -1174,7 +1174,7 @@ authorization from inside a controller::
11741174
11751175 public function helloAction($name)
11761176 {
1177- if (false === $this->get('security.context ')->isGranted('ROLE_ADMIN')) {
1177+ if (false === $this->get('security.authorization_checker ')->isGranted('ROLE_ADMIN')) {
11781178 throw $this->createAccessDeniedException('Unable to access this page!');
11791179 }
11801180
@@ -1186,6 +1186,10 @@ authorization from inside a controller::
11861186..versionadded ::2.5
11871187 The ``createAccessDeniedException `` method was introduced in Symfony 2.5.
11881188
1189+ ..versionadded ::2.6
1190+ The ``security.authorization_checker `` service was introduced in Symfony 2.6. Prior
1191+ to Symfony 2.6, you had to use the ``isGranted() `` method of the ``security.context `` service.
1192+
11891193The:method: `Symfony\\ Bundle\\ FrameworkBundle\\ Controller\\ Controller::createAccessDeniedException `
11901194method creates a special:class: `Symfony\\ Component\\ Security\\ Core\\ Exception\\ AccessDeniedException `
11911195object, which ultimately triggers a 403 HTTP response inside Symfony.
@@ -1618,14 +1622,18 @@ Retrieving the User Object
16181622~~~~~~~~~~~~~~~~~~~~~~~~~~
16191623
16201624After authentication, the ``User `` object of the current user can be accessed
1621- via the ``security.context `` service. From inside a controller, this will
1625+ via the ``security.token_storage `` service. From inside a controller, this will
16221626look like::
16231627
16241628 public function indexAction()
16251629 {
1626- $user = $this->get('security.context ')->getToken()->getUser();
1630+ $user = $this->get('security.token_storage ')->getToken()->getUser();
16271631 }
16281632
1633+ ..versionadded ::2.6
1634+ The ``security.token_storage `` service was introduced in Symfony 2.6. Prior
1635+ to Symfony 2.6, you had to use the ``getToken() `` method of the ``security.context `` service.
1636+
16291637In a controller this can be shortcut to:
16301638
16311639..code-block ::php
@@ -1895,13 +1903,17 @@ authorization from inside a controller::
18951903
18961904 public function helloAction($name)
18971905 {
1898- if (false === $this->get('security.context ')->isGranted('ROLE_ADMIN')) {
1906+ if (false === $this->get('security.authorization_checker ')->isGranted('ROLE_ADMIN')) {
18991907 throw new AccessDeniedException();
19001908 }
19011909
19021910 // ...
19031911 }
19041912
1913+ ..versionadded ::2.6
1914+ The ``security.authorization_checker `` service was introduced in Symfony 2.6. Prior
1915+ to Symfony 2.6, you had to use the ``isGranted() `` method of the ``security.context `` service.
1916+
19051917..caution ::
19061918
19071919 A firewall must be active or an exception will be thrown when the ``isGranted() ``
@@ -1925,7 +1937,7 @@ accepts an :class:`Symfony\\Component\\ExpressionLanguage\\Expression` object::
19251937
19261938 public function indexAction()
19271939 {
1928- if (!$this->get('security.context ')->isGranted(new Expression(
1940+ if (!$this->get('security.authorization_checker ')->isGranted(new Expression(
19291941 '"ROLE_ADMIN" in roles or (user and user.isSuperAdmin())'
19301942 ))) {
19311943 throw new AccessDeniedException();
@@ -1934,6 +1946,10 @@ accepts an :class:`Symfony\\Component\\ExpressionLanguage\\Expression` object::
19341946 // ...
19351947 }
19361948
1949+ ..versionadded ::2.6
1950+ The ``security.authorization_checker `` service was introduced in Symfony 2.6. Prior
1951+ to Symfony 2.6, you had to use the ``isGranted() `` method of the ``security.context `` service.
1952+
19371953In this example, if the current user has ``ROLE_ADMIN `` or if the current
19381954user object's ``isSuperAdmin() `` method returns ``true ``, then access will
19391955be granted (note: your User object may not have an ``isSuperAdmin `` method,
@@ -1979,10 +1995,10 @@ Additionally, you have access to a number of functions inside the expression:
19791995 use Symfony\Component\ExpressionLanguage\Expression;
19801996 // ...
19811997
1982- $sc = $this->get('security.context ');
1983- $access1 = $sc ->isGranted('IS_AUTHENTICATED_REMEMBERED');
1998+ $authorizationChecker = $this->get('security.authorization_checker ');
1999+ $access1 = $authorizationChecker ->isGranted('IS_AUTHENTICATED_REMEMBERED');
19842000
1985- $access2 = $sc ->isGranted(new Expression(
2001+ $access2 = $authorizationChecker ->isGranted(new Expression(
19862002 'is_remember_me() or is_fully_authenticated()'
19872003 ));
19882004