1

我已经在我的应用程序 FosUserBundle 中安装了 Symfony 2.5 版本,我可以访问我的网站:MySite/login 和注销:MySite/logout,但无论用户是否登录,我都可以访问我网站的任何页面

我该如何解决这个问题

安全.yml

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
    fos_userbundle:
        id: fos_user.user_manager
firewalls:
    login_firewall:
        pattern:    ^/login$
        anonymous:  ~
    main:
        pattern:    ^/
        form_login:
            provider:   fos_userbundle
            csrf_provider:  form.csrf_provider
            login_path: fos_user_security_login
            check_path: fos_user_security_check
            default_target_path:    /
        logout: 
            path:   /logout
            target: /login
        anonymous:   ~
access_control:
    - { path:  ^/$, roles: ROLE_USER  }
4

1 回答 1

2

您必须通过以下方式更改访问控制:

access_control:
    - { path: ^/login, roles: IS_AUTHENTIFICATED_ANONYMOUSLY }
    - { path: ^/*, roles: ROLE_ADMIN }
于 2014-11-25T15:59:22.237 回答