0

アプリケーションの任意の部分で、現在ログインしているユーザー (存在する場合) にアクセスする必要があります。などの特別なパスに/adminは、特別な権限 (役割) が必要です。

これは、アプリケーション全体を保護するファイアウォール構成 (1 つのファイアウォールのみ)ですが、匿名ユーザーは許可しません (ホームページでも現在のユーザーが必要なため)。

をリクエストしてもリダイレクトループが発生しました/。何か助けはありますか?

'security.firewalls' => array(
    'secured' => array(
        'pattern' => '.*',
        'anonymous' => false,
        'form' => array(
            'login_path' => '/login',
            'check_path' => '/login_check',
            'username_parameter' => 'login[username]',
            'password_parameter' => 'login[password]',
        ),
        'logout' => array('logout_path' => '/logout')
    )
)

アクセス ルールはROLE_ADMIN、で始まるパスに対してのみ必要/adminです。残りは匿名です。

'security.access_rules' => array(
    array('^/admin', 'ROLE_ADMIN'),
    array('^.*',     'IS_AUTHENTICATED_ANONYMOUSLY')
),
4

1 に答える 1

2

アクセスを許可するIS_AUTHENTICATED_ANONYMOUSLYには、匿名を許可する必要があります。

'security.firewalls' => array(
    'secured' => array(
        'pattern' => '/',
        'anonymous' => true,
        // other stuff
    )
)

'security.access_rules' => array(
    array('^/admin', 'ROLE_ADMIN'),
    array('^/',      'IS_AUTHENTICATED_ANONYMOUSLY')
),

ユーザーがログインしている場合は、すべてのページでアクセスできます。IS_AUTHENTICATED_ANONYMOUSLY認証されていないユーザー (匿名) を持つロールのみです。

于 2013-09-01T16:10:33.547 に答える