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: app_user_provider: entity: class: App\Entity\User property: email firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false # API-Dokumentation (öffentlich zugänglich) api_docs: pattern: ^/api/docs stateless: true security: false # Öffentliche Endpunkte (Bundesländer, Heizungstypen) public_api: pattern: ^/api/(bundeslands|heizungstyps) stateless: true security: false # API mit API-Key-Authentifizierung api: pattern: ^/api stateless: true custom_authenticators: - App\Security\ApiKeyAuthenticator main: lazy: true provider: app_user_provider form_login: login_path: app_login check_path: app_login default_target_path: app_home logout: path: app_logout target: app_home # Easy way to control access for large sections of your site # Note: Only the *first* access control that matches will be used access_control: # API-Dokumentation ist öffentlich - { path: ^/api/docs, roles: PUBLIC_ACCESS } # Öffentlicher Zugriff auf Bundesländer und Heizungstypen (GET) - { path: ^/api/(bundeslands|heizungstyps), methods: [GET], roles: PUBLIC_ACCESS } # Admin und Technical User Zugriff für Änderungen an Bundesländern und Heizungstypen - { path: ^/api/(bundeslands|heizungstyps), methods: [POST, PUT, DELETE, PATCH], roles: [ROLE_ADMIN, ROLE_TECHNICAL] } # Alle anderen API-Endpunkte erfordern Authentifizierung - { path: ^/api, roles: IS_AUTHENTICATED_FULLY } 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