| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | security:    # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords    password_hashers:        Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'    # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider    providers:        # used to reload user from session & other features (e.g. switch_user)        app_user_provider:            entity:                class: App\Entity\User                property: email        # used to reload user from session & other features (e.g. switch_user)    firewalls:        dev:            pattern: ^/(_(profiler|wdt)|css|images|js)/            security: false        main:            lazy: true            provider: app_user_provider            form_login:                login_path: app_login                check_path: app_login                enable_csrf: true            user_checker: App\Security\UserChecker            remember_me:                # https://symfony.com/doc/current/security/remember_me.html                secret: '%kernel.secret%'                lifetime: 604800 # 7 days in seconds            logout:                path: app_logout                # where to redirect after logout                # target: app_any_route            # activate different ways to authenticate            # https://symfony.com/doc/current/security.html#the-firewall            # https://symfony.com/doc/current/security/impersonating_user.html            # switch_user: true                        custom_authenticators:                - App\Security\KeycloakAuthenticator    role_hierarchy:        # USER : utilisateur simple authentifié, suivi des réservations de ses parties, annulations, demandes de parties...        ROLE_USER: ~        # STAFF : utilisateur membre du staff, ex. MJ...        ROLE_STAFF: [ROLE_USER]        # MANAGER : utilisateur avec des droits étendus, gestion des parties et suivi des inscriptions...        ROLE_MANAGER: [ROLE_STAFF]        # ADMIN : utilisateur avec des droits étendus, gestion des parties, des utilisateurs, des gamemasters...        ROLE_ADMIN: [ROLE_MANAGER]    # Easy way to control access for large sections of your site    # Note: Only the *first* access control that matches will be used    access_control:        - { path: ^/admin, roles: ROLE_ADMIN }        - { path: ^/profile, roles: ROLE_USER }        - { path: ^/manage, roles: ROLE_MANAGER }        - { path: ^/prepare, roles: ROLE_STAFF }        - { path: ^/checkin, roles: ROLE_STAFF }         - { path: ^/login/keycloak, roles: PUBLIC_ACCESS }when@test:    security:        password_hashers:            # By default, password hashers are resource intensive and take time. This is            # important to generate secure password hashes. In tests however, secure hashes            # are not important, waste resources and increase test times. The following            # reduces the work factor to the lowest possible values.            Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:                algorithm: auto                cost: 4 # Lowest possible value for bcrypt                time_cost: 3 # Lowest possible value for argon                memory_cost: 10 # Lowest possible value for argon
 |