1000 search results

Denying Access in a Controller

…user has a role, you'll always use one service: the authorization checker. It looks like this: if (!$this->get('security.authorization_checker')->isGranted('ROLE_ADMIN'). So, if we do not have ROLE_ADMIN, then throw $this->createAccessDeniedException(): That message is just for us developers…

2:38
Logging out & Pre-filling the Email on Failure

…But, it is not setting the last username on the session... because it doesn't really know where to look for it. No worries, fix this with $request->getSession()->set() and pass it the constant - Security::LAST_USERNAME - and $data['_username']: Now, try it again…

4:21
The Mysterious "User Provider"

…for user AppBundle\Entity\User. What the heck is a user provider and why do we need one? A user provider is one of the most misunderstood parts of Symfony's security. It's an object that does just a few small jobs for you…

2:18
Rendering that Login Form

…Great! This template also has a bunch of boilerplate code, so copy that from the docs too. Paste it here. Update the form action route to security_login: Well, it ain't fancy, but let's try it out: go to /login. There it is…

6:32
The new Voter Class

…unless I'm an admin... who can view anyone's page. This is a classic situation where security isn't global, it's dependent on the object being accessed. I can see my user page but not your user page. This is the perfect case…

5:54
Debugging!

…that can be used to activate development settings locally. But first, we need to play with permissions: Drupal makes some files in this directory readonly for security. Start by making sites/default writable by us: Now, copy sites/example.settings.local.php to sites/default…

3:18
Lock down: Require Authentication Everywhere

…OR, use a cool trick from SensioFrameworkExtraBundle. Give the controller class a doc-block and a new annotation: @Security. Auto-complete that to get the use statement. Then, add "is_granted('ROLE_USER')": Now we're requiring a valid user on every endpoint. Re-run…

3:09
Registering the Authenticator (Part 2)

…authenticator. Set its class to AppBundle\Security\JwtTokenAuthenticator: And instead of adding an arguments key: here's your permission to be lazy! Set autowire to true to make Symfony guess the arguments for us. Finally, copy the service name and head into security.yml. Under…

2:12
Authenticate a Request with JWT

…it alone: Copy that name and run it: Instead of the 201, we get a 200 status code after being redirected to /login. I know we don't have our security system hooked up yet, but pretend that it is hooked up and working nicely…

2:18
Start Securing the App!

…will be saying soon to API clients in this tutorial that don't have valid credentials! Yep, welcome back guys, this time to a tutorial that's making security exciting again! Seriously, I'm pumped to talk about authentication in an API... and in particular…

4:20
Restricting Edit Access to Owners

…your app just by throwing the special AccessDeniedException. Since we’ll need the same security logic in editAction, updateAction and deleteAction, let’s create a private function called enforceOwnerSecurity that holds it: // src/Yoda/EventBundle/Controller/EventController.php // ... use Symfony\Component\Security\Core\Exception\AccessDeniedException…

1:53
Remember Me Functionality

…firewall and giving it a secret, random key: # app/config/security.yml security: Tip You can also use a secret parameter from parameters.yml as a remember me key to centralize secret key management for the entire application. Next, open the login template and add…

1:44
Accessing the User

…in a Controller¶ From a controller, it’s just as easy. Go to the controller function for the homepage and grab an object called the security context. Then call getToken() and getUser(): public function indexAction() { } Actually, since this is a bit long, the Symfony base…

1:09
Whitelisting: Securing all Pages, except a few

… To fix this, add a new access_control entry above this for any page starting with /login. For the role, type IS_AUTHENTICATED_ANONYMOUSLY: # app/config/security.yml security: Refresh again. It works! We’re missing our styles, but we’ll fix that next. The…

2:15
After-dinner Mint

…let’s relax a little and have some fun. In this last part, we’ll check out some cool things related to forms and security. Form Field Guessing¶ Remember when we disabled HTML5 validation earlier. Let’s add it back temporarily. Remove the novalidate attribute…

3:35
Automatically Authenticating after Registration

…function called authenticateUser inside RegisterController. Normally, authentication happens automatically, but we can also trigger it manually: // src/Yoda/UserBundle/Entity/Controller/RegisterController.php // ... use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; private function authenticateUser(User $user) { } This code might look strange, and I don’t…

0:55
Creating a Login Form (Part 2)

… Copy the template code from the docs and create the login.html.twig file: {# src/Yoda/UserBundle/Resources/views/Security/login.html.twig #} {% if error %} {% endif %} If you want to control the URL the user is redirected…

3:57
Introduction

…s get to work. Over the next hour, we’re going to take things to the next level, aiming at some of the most difficult areas of Symfony, like security, forms, and some serious Doctrine topics. Some of this stuff will look pretty tough at…

0:44
Twig Mind Tricks

…every template, you have access to a variable called app. This has a bunch of useful things on it, like the request, the security context, the User object, and the session: It's actually an object called GlobalVariables, which you can check out yourself. So…

1:55
Fragments, ESI and Caching

…Symfony 2.0, but was called “sub-requests”. In 2.2, the feature has been overhauled for flexibility, speed and security. Understanding Http Caching, ESI and Fragments¶ One of the best features of Symfony is its use of Edge Side Includes or ESI. This is…

7:37