Symfony 2 - Blendet die gesamte Website mit einem HTTP-Authentifizierungsdialog aus

Ich verwende Symfony 2 zum Erstellen einer Website.

Die Arbeit ist in Bearbeitung (daher möchte ich nicht, dass Benutzer oder Suchmaschinen darauf zugreifen), aber mein Kunde möchte meinen Fortschritt sehen. Ich war der Meinung, dass eine einfache Lösung darin besteht, die gesamte Website mithilfe des von der Symfony 2-Sicherheitsfunktion bereitgestellten Mechanismus durch HTTP-Authentifizierung zu schützen.

Ich verwende FOSUserBundle, da die Website Benutzer enthält, die sich registrieren und anmelden müssen.

Dies ist meine security.yml, die hervorragend funktioniert:

<code>security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager

    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true     

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }
        - { path: ^/account, role: IS_AUTHENTICATED_FULLY }

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN
</code>

Deshalb habe ich versucht, noch etwas hinzuzufügen, damit die Website durch HTTP-Authentifizierung geschützt werden kann.
Ich habe die Datei geändert in:

<code>security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager
        whole_website_provider:
            users:
                ryan:  { password: ryanpass, roles: 'ROLE_USER' }           

    encoders:
        "FOS\UserBundle\Model\UserInterface": sha512

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true
        whole_website:
            pattern: ^/
            anonymous: ~
            http_basic:
                realm: "Secured Demo Area"       

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }
        - { path: ^/account, role: IS_AUTHENTICATED_FULLY }
        - { path: ^/, role: ROLE_USER }

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN
</code>

Grundsätzlich habe ich diewhole_website_provider Anbieter, derwhole_website Firewall und ein extraaccess_control.
Aber das hat nicht funktioniert: Wenn ich auf die Website zugreife, werde ich zum Anmeldeformular weitergeleitet, das war's.

Hast du eine Idee, ob ich das kann und wie?

NB: Ich würde es vorziehen, keine Apache-Funktion dafür zu verwenden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage