Access Denied Symfony 2

Bre*_*ent 1 php symfony

我一直在为当前正在构建的APP登录页面.它的运行检查很好但是当用户被重定向到/ secure_area时,我看到了当前的错误.

Access Denied 403 Forbidden - AccessDeniedHttpException 1 linked Exception:

AccessDeniedException »
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止

security.yml

security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        Simple\ProfileBundle\Entity\User:
            algorithm:        sha1
            encode_as_base64: false
            iterations:       1

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        main:
            entity:
                class: Simple\ProfileBundle\Entity\User
                property: username

    firewalls:

        secured_area:
            pattern:    ^/
            anonymous: ~
            form_login:
                login_path:  login
                check_path:  login_check
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false


    access_control:
          - { path: ^/secure_area, roles: ROLE_ADMIN }
Run Code Online (Sandbox Code Playgroud)

*routing_dev.yml*

index:
    pattern:   /
    defaults:  { _controller: SimpleProfileBundle:Security:login }


login:
    pattern:   /login
    defaults:  { _controller: SimpleProfileBundle:Security:login }


login_check:
    pattern:   /login_check

test_security:
    pattern: /secure_area
    defaults: {_controller: SimpleProfileBundle:Security:dumpString }
Run Code Online (Sandbox Code Playgroud)

任何想法,这个框架的新手,所以开始了解基础知识.

谢谢

And*_*ski 7

拒绝访问意味着已记录的用户无权访问该资源.我相信,您的用户具有ROLE_ADMINROLE_USER角色.如果您的用户已成功登录,则没有其他办法.

另一方面,为什么不使用FOSUserBundle?初学者更好地理解整个过程的工作方式(只需阅读代码和安全组件文档).安全组件是最难理解的组件之一,因为一些"事物"发生在幕后,因此您需要完全理解组件如何工作以确保您不会犯任何愚蠢的错误.

真的,阅读仔细链接的文档将是一个完美的开始,暂时忽略教程.