私はsymfony2を使用していますが、symfonyファイアウォールでの認証とアクセス制御について少し問題があります。
これは私の security.yml です
security:
encoders:
test\UserBundle\Entity\User:
algorithm: sha1
encode_as_base64: false
iterations: 1
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
providers:
administrators:
entity: { class: UserBundle:User, property: email }
firewalls:
login_firewall:
pattern: ^/login$
anonymous: ~
security: true
admin_area:
pattern: ^/cp|/(cp/.*|login_check)
http_basic: ~
form_login:
login_path: _login
check_path: login_check
always_use_default_target_path: true
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY|ROLE_USER }
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/(booking/hotelsearchresult), roles: IS_AUTHENTICATED_ANONYMOUSLY }
問題はこのサイトにあり、管理者用の /admin パスまたは特定のパスはありません。管理者は各ページの役割によって定義され、ページの内容はユーザーの種類によって異なります。(それは私が知っている悪いことです)。
つまり、一部を除くすべてのページにすべてのユーザーがアクセスできるようにする必要があり、ログインすると、さまざまな種類のデータが取得されます。
しかし、私は次のエラーがあります:
ログインして、ユーザーを別のパス (保護されたパスとして定義されていない) に送信すると、信用情報が表示されませんか?!!!
この構造を持つデータを取得してアクセスするにはどうすればよいですか?