我一直在为当前正在构建的APP登录页面。它的运行检查很好但是当用户被重定向到/ secure_area时,我看到了当前的错误。
到目前为止Access Denied 403 Forbidden - AccessDeniedHttpException 1 linked Exception: AccessDeniedException »
我的代码
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 }
* 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 }
任何想法,对此框架都是新手,因此开始了解基础知识。
谢谢
答案 0 :(得分:7)
拒绝访问意味着已记录的用户无权访问该资源。我认为您的用户没有具有ROLE_ADMIN
或ROLE_USER
角色。如果您的用户已成功登录,则没有其他办法。
另一方面,为什么不使用FOSUserBundle?初学者更好地理解整个过程是如何工作的(只需阅读代码并且Security component documentation)。安全组件是最难理解的组件之一,因为一些“事物”发生在幕后,因此您需要完全理解组件的工作方式,以确保您不会犯任何愚蠢的错误。
真的,阅读仔细链接的文档将是一个完美的开始,暂时忽略教程。