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.