Blog / Article #7
Configuration basique de la sécurité Symfony2

star

09 Novembre 2012

Configuration basique de la sécurité symfony2

Configuration basique de la sécurité Symfony2

 Comme souvent, le backoffice de votre plus beau site web se trouve derrière une page de login qui vous demande un couple identifiant et mot de passe pour vous laisser passer vers la page du seigneur, celle qui vous donne l'accès au saint Graal, l'index de l'administration. Si tout le monde avait accès aux interfaces admin je pense que ça serait drole quelques minutes mais nous on a pas trop envie pour le coup et on voudrais disposer d'un minimum de sécurité, pour toutes nos pages dont les routes seront préfixées de "admin/". 

La documentation de Symfony2 est assez claire sur le sujet mais il manque quand même un exemple selon moi. Donc voici un exemple très simple qui laisse supposer que vous disposez déja des routes élémentaires que sont les login (qui doit pointer vers un controller), login_check et logout (qui doivent juste êtres définies).

Bien sur il ne s'agit que d'une base rapide avec un mot de passe en clair mais dans un premier temps ca peut vous protéger un peu.

jms_security_extra:
    secure_all_services: false
    expressions: true

security:

    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER

    providers:
        in_memory:
            memory:
                users:                   
                    admin: { password: 'password', roles: [ 'ROLE_ADMIN' ] }
    firewalls:
        main:
            pattern: /.*
            form_login:
                check_path: /login_check
                login_path: /login
            logout:
                path:   /logout
                target: /
            anonymous: ~

    access_control:
        - { path: ^/admin.*, role: ROLE_ADMIN }           

Ayez pitié d'un pauvre petit dev web, donnez un +1...

Auteur de l'article
Retour a la liste