1

Symfony 2.5 のバージョンでアプリケーション FosUserBundle をインストールしました。自分のサイトにアクセスできます: MySite/login およびログアウト: MySite/logout ですが、ユーザーがログに記録されているかどうかに関係なく、自分のサイトの任意のページにアクセスできます。

これを解決するにはどうすればよいですか

security.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 に答える