为什么在未对用户进行身份验证时调用我的控制器操作?

时间:2014-05-19 16:02:45

标签: php security symfony

Symfony2为什么在未对用户进行身份验证时调用我的控制器actoin?

我有行动: 路线:acme/home/list 代码:

/**
 * @Route("/list")
 * @Template()
 */
public function listAction()
    {
        return array(
            'username' => $this->getUser()->getUsername(),
        );
    }

并且应该使用我的security.yml

进行限制

但是在输入未经身份验证时我收到错误 错误:FatalErrorException: Error: Call to a member function getUsername() on a non-object in

这是我的security.yml

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

这可能是错的?它没有重定向到加载页面?

1 个答案:

答案 0 :(得分:0)

我正在使用jms翻译包。 设置我的access_control路由以用户区域设置为前缀修复了prbolem。

这是一个示例路线:

- { path: ^/[^/]+/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }

只需将/[^/]+添加到路由(区域设置前缀)

即可
相关问题