2011-12-15 12 views
2

を動作しません。Symfony2の+ FOSUSerBundle:リダイレクトは、私はSymfony2のとFOS UserBundleを使用

私はhttps://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.mdからFOSUSerBundleドキュメントを踏襲しているが、私は特定のページに行くよ場合、私は何のリダイレクトを持っていません。

http/myapp/myspecificPage/totoと入力すると、http/myapp/loginにリダイレクトする必要がありますが、そうではありません。私のアプリにログインしていなくても。

私NamespaceLoginBundleはFOSUserにまで及びます。ここで

私のファイルrouting.yml

login: 
    pattern: /login 
    defaults: { _controller: NamespaceLoginBundle:Welcome:login } 

login_check: 
    pattern: /login_check  
    defaults: { _controller: NamespaceLoginBundle:Welcome:checkUser } 

fos_user_security: 
    resource: "@FOSUserBundle/Resources/config/routing/security.xml" 
    prefix:/

fos_user_profile: 
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml" 
    prefix: /profile 

fos_user_register: 
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml" 
    prefix: /register 

fos_user_resetting: 
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml" 
    prefix: /resetting 

fos_user_change_password: 
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml" 
    prefix: /change-password 

と私はいくつかの変更を試してみましたが、動作しません

security: 
    providers: 
     fos_userbundle: 
      id: fos_user.user_manager 

    firewalls: 
     main: 
      pattern: ^/ 
      form_login: 
       provider: fos_userbundle 
      logout:  true 
      anonymous: true 

    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 

    access_control: 
     # Liste des pages accessibles à tous les utilisateurs (ne pas toucher) 
     - { path: ^/_wdt/, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/_profiler/, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/js/, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/css/, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/register$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/resseting$, role: IS_AUTHENTICATED_ANONYMOUSLY } 

     # PAGES ACCESSIBLES AUX ADMINISTRATEURS 
     - { path: ^/admin/, role: ROLE_ADMIN } 

     # PAGES ACCESSIBLES AUX UTILISATEURS CONNECTES 
     - { path: ^/change-password, role: ROLE_USER } 

     # PAGES ACCESSIBLES A TOUS 
     - { path: ^.*, role: IS_AUTHENTICATED_ANONYMOUSLY } 

    acl: 
     connection: default 

のsecurity.yml。

助けてください。

は、See Ya(シーヤ)

サム

+0

最後のログイン時に「私を覚えて」選択したユーザーであります。IS_AUTHENTICATED_ANONYMOUSLY'ルール.. – meze

+0

私は削除しても、: '^ *、役割によって - {。パス:^ *、役割:IS_AUTHENTICATED_ANONYMOUSLY}それはあなたが役割を指定する必要が – Sam

+1

動作しない、それを削除しません。 ' - {path:^ /。*、role:[IS_AUTHENTICATED_REMEMBERED、IS_AUTHENTICATED_FULLY]}'ここでIS_AUTHENTICATED_FULLYはログインとパスワードを入力して認証され、IS_AUTHENTICATED_REMEMBEREDは最後のログイン時に 'remember me'を選択したユーザーです – meze

答えて

0

EDIT:初めて、間違った解答x)はあなたが唯一のログインページで、匿名ユーザーを可能にするために、あなたのaccess_roleを設定する必要が

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/logout, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, roles: ROLE_USER } 
+0

こんにちは私はこの行を削除しようとしましたが、このエラーがあります: "La page n'est pasredirigéecorrectement"は "リダイレクトが正しくない"という意味です – Sam

+1

私の悪い、私は 'anonymous:本当だ。私は私の答えを編集;) (そして、私はそれが何を意味するか知っている、私はフランス人= Pです) –

+0

私は次の時間のためにそれを知っているだろう、ありがとう;) – Sam

1

ロールを指定する必要があります

- { path: ^/.*, role: [IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_FULLY] }

IS_AUTHENTICATED_FULLY

は、ログイン名とパスワードを入力して認証されるには、IS_AUTHENTICATED_REMEMBEREDはあなたがパスワードを変更する管理者を除くすべてのページにアクセスし、することができ

関連する問題