security.yml中的重定向

时间:2013-09-15 14:09:11

标签: symfony fosuserbundle symfony-2.3

我安装并配置了FOSUserBundle,一切正常。 但是我需要当用户转到/ URI时,symfony2会检查用户是否登录,如果登录则保留在/ URI和加载配置文件页面上,如果没有将其重定向到/登录页面。

如何在security.yml中执行此操作。

我试过了:

security:
encoders:
    FOS\UserBundle\Model\UserInterface: sha512

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

providers:
        fos_userbundle:
            id: fos_user.user_provider.username

firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                login_path: /login
                default_target_path: /
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/*, role: ROLE_USER }

但它给了我:找不到“GET /”的路线

1 个答案:

答案 0 :(得分:1)

登录后重定向您的页面
security.yml

firewalls:
        main:
            pattern:    ^/
            form_login:
                provider:             fos_userbundle
                default_target_path:  /dashboard/                
            logout:     
                ........
                invalidate_session: false
            anonymous: ~

在路由文件中

applicationlogin_success:
  pattern: /dashboard/
  defaults: { _controller: SampleBundle:Default:FrontPage } 

使用default_target_path:ROUTING_PATTERN
你会重定向它......