1

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

如何在 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 /”的路线

4

1 回答 1

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
你将重定向它...

于 2013-09-25T09:20:45.527 回答