2017-05-05 9 views
1

私は現在、以下のコードを持っています。 私が理解していないことがいくつかあります。symfonyのセキュリティaccess_controlの構文

各パスの前にある^ /は何ですか?

$ behind ^/loginとは何ですか?

ページにアクセスできないときにログインページにリダイレクトされるのはなぜですか?これを設定するか、これを変更しますか?

私のフロントページ(/)へのアクセスを許可する一方で、他のページ(ログイン/登録ページを除く)にアクセスするにはログインする必要がありますか?

IS_AUTHENTICATED_FULLYまたはROLE_USERを使用しますか? ^と$

文字列の^ =開始 $ =文字列

https://en.wikipedia.org/wiki/Regular_expression#Delimitersの終わりについて

は、どちらかのテーマに関する明確な情報を見つけることができません...

​​

答えて

3

IS_AUTHENTICATED_FULLYまたはROLE_USER: これら2つを直接比較することはできません。あなたは完全に認証され、役割ユーザーはいません。 IS_AUTHENTICATED_FULLYは、このセッションでremember_meメカニズムを使用してログインしていないが、パスワードを積極的に入力したことを意味します。 ただし、ログインしているユーザーに付与されている役割を確認することはできません。ここ

より: http://symfony.com/doc/current/security.html#checking-to-see-if-a-user-is-logged-in-is-authenticated-fully

他のページにアクセスするにはログインするユーザーを必要としながら、私のフロントページ(/)へのアクセスを許可する簡単な方法があります(ログイン以外は/ページを登録します) ?

試してみてください。

access_control: 
    - { path: ^/$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin/, role: ROLE_ADMIN } 
    - { path: ^/*, role: IS_AUTHENTICATED_FULLY } 
+0

私は第一行が必要な理由を十分に理解していないか、どのような$が正確に –

+0

末尾に$の意味「で終わる」ん、であるが、動作しているようですこの場合(^/$)はルートパスのみを意味します。 – jeremy

関連する問題