security:
    enable_authenticator_manager: true
    # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords
    password_hashers:
      # Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
      App\Module\Users\Entity\User:
        id: App\Security\LegacyPasswordHasher
      app_hasher:
        id: 'App\Security\LegacyPasswordHasher'
    # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider
    providers:
      # users_in_memory: { memory: null }
      app_user_provider:
        entity:
          class: App\Module\Users\Entity\User

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
