【问题标题】:Symfony secured pagesSymfony 安全页面
【发布时间】:2013-09-06 19:46:55
【问题描述】:

我有带有登录表单的登录页面。因此,如果用户已经登录,我想将他从登录页面重定向到另一个页面。安全区域是所有带有.*/secured.html 的页面,登录页面 url 是 -login/page.html。当我尝试$this->container->get('security.context'); 时,我收到错误消息,因为当前页面不在安全区域下,所以没有安全令牌。所以如果我想使用令牌(如果存在)我应该将所有这些页面添加到安全区域吗?这样 symfony2 将在每次用户登录时检查(并且可能会重定向到登录页面)但如果我添加

    login:
            pattern:  ^/demo/secured/login$
            security: false

身份验证令牌也不存在。

那么在所有应用程序页面上使用身份验证令牌的方法是什么?或者所有这些页面都应该添加到安全区域?

【问题讨论】:

    标签: php security symfony


    【解决方案1】:

    如果您关闭安全性,您就没有令牌。您的登录页面必须放在防火墙后面。不,你不必 将所有单页添加到您的设置中。

    这是一个例子:

    firewalls:
            main:
                pattern: ^/
                form_login:
                    login_path: /account/login
                    check_path: /account/login_check
                logout:
                    path: /account/logout
                anonymous: true
            dev:
                pattern:  ^/(_(profiler|wdt)|css|images|js)/
                security: false
    
    access_control:
            - { path: ^/account/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/account/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/movie/, role: ROLE_USER }
            - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
            - { path: ^/admin/, role: ROLE_ADMIN }
    

    如您所见,我激活了所有页面的安全性,但我允许匿名访问。 使用此访问控制:- { path: ^/movie/, role: ROLE_USER } 我可以完全控制哪些用户可以访问该页面, 这意味着用户已经登录。

    要深入了解,我可以推荐文档:http://symfony.com/doc/current/book/security.html

    干杯。

    【讨论】:

      【解决方案2】:

      所以如果我想使用令牌(如果存在),我应该将所有这些页面添加到 安全区域?

      是的,您必须将那些要访问安全令牌的地方放在防火墙后面。如果您还想在登录页面访问安全令牌,您还必须将其放在同一防火墙后面。但是然后将其访问控制设置为IS_AUTHENTICATED_ANONYMOUSLY

      access_control:
          - { path: ^/secured/login/page.html$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
      

      【讨论】:

        猜你喜欢
        • 2013-12-28
        • 2016-06-05
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多