「通常の」ユーザー向けのプロバイダーであるWebサービスがあります。管理者用に FosUserBundle を使用したいと考えています。上記は私のセキュリティ構成です。通常のユーザーのログインは問題なく機能しますが、管理者としてログインしたい場合、次のメッセージが表示されます。
"セキュリティ ファイアウォール構成で form_login を使用して、チェック パスがファイアウォールによって処理されるように構成する必要があります。"
これが私のセキュリティ設定です:
security:
encoders:
Locastic\CustomUserBundle\Security\User\User: plaintext
FOS\UserBundle\Model\UserInterface: sha512
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
webservice:
id: locastic.user_provider
firewalls:
main:
pattern: ^/admin
form_login:
provider: fos_userbundle
login_path: fos_user_security_login
check_path: fos_user_security_check
csrf_provider: form.csrf_provider
logout: true
anonymous: true
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~ # Defaults to the current domain from $_SERVER
user-service:
pattern: ^/
logout:
path: /logout
anonymous: true
webservice-login:
check_path: /prijava-provjera
login_path: /prijavi-se
provider: webservice
always_use_default_target_path: true
default_target_path: /stanje-racuna
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 }
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN