Я использую Symfony 2 для создания веб-сайта.
Работа продолжается (, поэтому я не хочу, чтобы пользователи или поисковые системы имели к ней доступ ), но мой клиент хочет видеть мой прогресс. Я думал, что простым решением будет защита всего веб-сайта с помощью HTTP-аутентификации с использованием механизма, предоставляемого функциями безопасности Symfony 2.
Я использую FOSUserBundle, так как на веб-сайте будут пользователи, которым необходимо зарегистрироваться и войти в систему.
Это мой файл security.yml, который отлично работает.:
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
Поэтому я пытался добавить что-то еще поверх него, чтобы обеспечить защиту веб-сайта с помощью HTTP-аутентификации.
Я изменил файл на :
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
. В основном я добавил поставщика whole_website_provider
, брандмауэра whole_website
и дополнительного access_control
.
Но это не сработало :, когда я захожу на веб-сайт, меня перенаправляют на форму входа, вот и все.
Вы не представляете, смогу ли я это сделать и как?
Н.Б. :Я бы предпочел не использовать для этого какие-либо функции Apache.