Web サイトの構築に Symfony 2 を使用しています。
作業は進行中です (したがって、ユーザーや検索エンジンにアクセスしてほしくありません) が、クライアントは私の進行状況を確認したいと考えています。Symfony 2 のセキュリティ機能によって提供されるメカニズムを使用して、HTTP 認証で Web サイト全体を保護するのが簡単な解決策だと考えていました。
ウェブサイトには登録とログインが必要なユーザーがいるため、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
したがって、Web サイトを 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
。
しかし、それはうまくいきませんでした: Web サイトにアクセスすると、ログイン フォームにリダイレクトされます。それだけです。
私がそれを行うことができるかどうか、またどのように行うかについて何か考えがありますか?
注意: Apache の機能を使用したくないと思います。