我正在使用 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 路径或管理员的特定路径。admin 由每个页面中的角色定义,并且页面的内容根据用户类型而不同。(我知道这很糟糕)。
这意味着我必须让所有用户访问除某些页面之外的所有页面,如果他们登录,他们会获得不同类型的数据。
但我有以下错误:
当我登录并将用户发送到另一条路径(不被视为安全路径)时,它不显示任何信用信息?!!!
我应该怎么做才能拥有和访问具有这种结构的数据?